在没有时间的python中创建日期

新手上路,请多包涵

我需要获取没有时间的当前日期,然后将该日期与用户输入的其他日期进行比较

import datetime
now = datetime.datetime.now()

例子

currentDate="01/08/2015"
userDate="01/07/2015"
if currentData > userDate:
 .........
else:
  ...................

原文由 ruby student 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 763
2 个回答

您可以使用 datetime.date 对象,它们没有时间部分。

您可以使用 datetime.date.today() 获取当前日期,示例 -

 now = datetime.date.today()

这会给你一个类型的对象 - datetime.date 。您可以使用 .date() 方法获取 date() datetime 对象的一部分,然后您可以比较两个日期。

例子 -

 now = datetime.date.today()
currentDate = datetime.datetime.strptime('01/08/2015','%d/%m/%Y').date()

然后你可以比较它们。

此外,要将字符串转换为日期,您应该使用 datetime.strptime() 正如我在上面使用的那样,例如 -

 currentDate = datetime.datetime.strptime('01/08/2015','%d/%m/%Y').date()

这将导致 currentDate 成为 datetime.date 对象。


示例/演示 -

 >>> now = datetime.date.today()
>>> currentDate = datetime.datetime.strptime('01/08/2015','%d/%m/%Y').date()
>>> now > currentDate
False
>>> now < currentDate
False
>>> now == currentDate
True

原文由 Anand S Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 Python 3.9.5 中:

 from datetime import datetime, time
datetime.combine(datetime.now(), time.min)

给出结果(如果在 2021 年 12 月 9 日运行):

 datetime.date(2021, 12, 9)

这是一个日期时间对象。

正如 Anand S. Kumar 的回复所述,您还应该使用 datetime.strptime() 将用户提供的日期转换为 datetime 对象。然后你可以做简单的平等比较( == ), >< 等。

原文由 mropp 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题