You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用datetime计算月初前一天日期是否会生成非法值?

你写的这段代码逻辑完全正确,Python的datetime模块已经内置了合法的日期运算规则,会自动处理跨月、跨年、闰年等边界场景,不会生成不符合公历规范的日期值。

结论

当datetime.date.today()的值为2021-09-01时,计算得到的yesterday等于2021-08-31,不会出现2021-09-00这类非法日期。

你可以手动构造日期做测试验证,测试代码如下:

import datetime

# 手动构造指定日期用于测试
test_date = datetime.date(year=2021, month=9, day=1)
yesterday = test_date - datetime.timedelta(days=1)
print(yesterday)

运行后输出结果为:

2021-08-31

额外补充几个常见边界场景的运算结果,你也可以自行验证:

  • 2024-01-01 减1天得到 2023-12-31
  • 2024-03-01 减1天得到 2024-02-29(2024为闰年)
  • 2023-03-01 减1天得到 2023-02-28

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:09:03