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

rub*_*ent 8 python python-2.7 python-3.x

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

import datetime
now = datetime.datetime.now()
Run Code Online (Sandbox Code Playgroud)

currentDate="01/08/2015"
userDate="01/07/2015"
if currentData > userDate:
 .........
else:
  ...................
Run Code Online (Sandbox Code Playgroud)

Ana*_*mar 17

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

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

now = datetime.date.today()
Run Code Online (Sandbox Code Playgroud)

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

示例 -

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

然后你可以比较它们.

另外,要将字符串转换为日期,您应该dateimte.strptime()像我上面使用的那样使用示例 -

currentDate = datetime.datetime.strptime('01/08/2015','%d/%m/%Y').date()
Run Code Online (Sandbox Code Playgroud)

这将导致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
Run Code Online (Sandbox Code Playgroud)


mro*_*opp 6

在 Python 3.9.5 中:

from datetime import datetime, time
datetime.combine(datetime.now(), time.min)
Run Code Online (Sandbox Code Playgroud)

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

datetime.date(2021, 12, 9)
Run Code Online (Sandbox Code Playgroud)

这是一个日期时间对象。

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