python - 在 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:~$
这段代码出了什么问题,我该如何解决?
解决方案
这仅仅是因为您使用的是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')
推荐阅读
- html - 调整初始 100vh 容器的大小
- javascript - AngularJS - 工具提示不起作用
- excel - Excel 宏执行多列排序
- javascript - Electron:在 BrowserWindow 和呈现的 URL 之间进行通信(nodeIntegration:false)
- excel - VBS for Excel to count and specific word and use it for a loop
- node.js - PM2 会与 Node.js 网络 API 一起使用吗?
- ffmpeg - ffmpeg 即时使用调整大小的图像
- zapier - Zapier - 输入数据排序
- python - 如何在磁盘上保留大量 numpy 矩阵
- sql - SQL:[table_name] AS [alias_name] 给出错误“找不到存储过程 'table_name'”