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
相关产品推荐
相关产品推荐

