短日期格式仍有时间

时间:2016-12-22 09:24:47

标签: python date strptime

我正在写一篇关于我写的python脚本的日期问题。为什么这是假的?我不明白为什么00:00:00仍然存在,即使我只明确要求日,月,年?

date1 = datetime.strptime('22 Dec 2016', '%d %b %Y') <-- 2016-12-12 00:00:00
date2 = datetime.today().date()
print(date1==date2)  # False

2 个答案:

答案 0 :(得分:6)

您正在比较datetime对象和date对象; datetime.strptime() 始终生成datetime个实例;即使时间设置为午夜,仍然是日期和时间组合。

要仅比较日期,您需要明确地这样做。

或者:

date1.date() == date2  # extract the date, compare to the other date

from datetime import time

# compare the datetime to another datetime with midnight
date1 == datetime.combine(date2, time.min)

答案 1 :(得分:-1)

首先,你是在错误的方向检查它。这里比较发生在日期时间和日期之间。将日期与日期进行比较,然后提供 TRUE 00:00:00 仍然存在,因为日期时间总是有时间与之相关,所以这里保持 00:00:00 ,因为没有提供时间。

date1 = datetime.strptime('22 Dec 2016', '%d %b %Y') <-- 2016-12-12 00:00:00
date2 = datetime.today().date()
print(date1==date2)
False



print(date1.date()==date2)
True