在python中创建日期而不带时间

ogsagwnx  于 2023-06-25  发布在  Python
关注(0)|答案(5)|浏览(154)

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

import datetime
now = datetime.datetime.now()

示例

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

owfi6suc1#

你可以使用datetime.date对象,它们没有时间部分。
您可以使用datetime.date.today()获取当前日期,示例-

now = datetime.date.today()

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

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
sc4hvdpw

sc4hvdpw2#

在Python 3.9.5中:

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

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

datetime.date(2021, 12, 9)

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

wn9m85ua

wn9m85ua3#

请尝试:datetime.today().date()
结果:datetime.date(2021,6,26)

z9ju0rcb

z9ju0rcb4#

如果你想比较日期,那么比较日期,而不是字符串。使用datetime.datetime.strptime()解析用户输入的日期。

import datetime
now = datetime.datetime.now()
userDate = "01/07/2015"
if datetime.datetime.strptime(userDate, '%m/%d/%Y') < now:
    ...
cwxwcias

cwxwcias5#

对于那些在2023年寻找答案的人来说,试试看:

datetime.date(datetime.now())

相关问题