You need to enable JavaScript to run this app. Python使用datetime库时if语句日期比对失败问题求解
优惠活动
大模型
产品
解决方案
定价
更多

Python使用datetime库时if语句日期比对失败问题求解

问题根因
  • datetime.date类型对象直接转为字符串的默认输出格式为YYYY-MM-DD,和你用来做匹配判断的06/08/2021的格式、字段顺序完全不同,所以if条件永远判定为不成立。
  • 你所说的运行代码打印出06/08/2021和你提交的代码逻辑不符,你提交的代码中print(str(tday))的输出结果必然是年-月-日格式的字符串,大概率是你混淆了实际运行代码和测试的其他代码。
修复方案

方案1:格式化日期为目标格式后匹配

使用strftime方法将日期转为你需要的斜杠分隔格式,注意确认月和日的顺序:

from datetime import date

tday = date.today()
# 若06是月份、08是日期,格式符写为"%m/%d/%Y";若06是日期、08是月份,写为"%d/%m/%Y"
formatted_today = tday.strftime("%m/%d/%Y")
print(formatted_today)

if formatted_today == "06/08/2021":
    print("Today's date:", formatted_today)
else:
    print("Today's date isn't:", formatted_today)

方案2:直接匹配date对象(更稳妥,无格式兼容问题)

直接构造待判断的date对象和当前日期对比,不需要处理字符串格式:

from datetime import date

tday = date.today()
# 参数顺序为 年, 月, 日,根据实际需要的日期调整即可
if tday == date(2021, 6, 8):
    print("Today's date:", tday)
else:
    print("Today's date isn't:", tday)

内容的提问来源于stack exchange,提问作者Leandro Baur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 00:18:04