首页 > 解决方案 > 在 Python 中比较 2 个日期没有按预期工作

问题描述

我想在 Python 中比较 2 个日期。但是,以下程序无法按预期工作。正如您在输出中看到的,今天是2019-08-11. 不幸的是,Python 将其评估为 False,即使它实际上是真的,对吗?

import datetime

today = datetime.date.today()
day1 = datetime.datetime(2019, 8, 11)

print(f"Today's date is {today}")

if today == day1:
    print('today is day1')
else:
    print('today is not day1')

输出

user@linux:~$ py compare2dates.py 
Today's date is 2019-08-11
today is not day1
user@linux:~$ 

这段代码出了什么问题,我该如何解决?

标签: python

解决方案


这仅仅是因为您使用的是datetime而不是date. 如果您打印day1,您会注意到它是带有时间戳的日期时间:

day1 = datetime.datetime(2019, 8, 10)
print(f"day1 is {day1}")

day1 是 2019-08-10 00:00:00

为避免该错误,请按如下方式更改您的代码:

import datetime

today = datetime.date.today()
day1 = datetime.date(2019, 8, 11)

print(f"Today's date is {today}")

if today == day1:
    print('today is day1')
else:
    print('today is not day1')

推荐阅读