短日期格式仍然有时间

Short date format still has time

我在编写 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

您正在比较一个 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)

首先你检查方向错误。这里比较发生在日期时间和日期之间。将日期与日期进行比较,然后它提供 TRUE00:00:00 仍然存在,因为 datetime 总是有与之关联的时间,所以这里保持 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