我正在写一篇关于我写的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
答案 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