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

Python datetime计算天数差返回负数及0值问题求助

datetime天数差计算异常的原因解析

先看你的代码:

commit_date = get_last_commit_date() # 返回datetime对象: 2022-08-25 13:32:12
pr_date = datetime.fromisoformat(ISO_CODE) # 返回2022-08-24 19:15:07

出现这种结果的核心原因是Python中timedelta.days返回的是向下取整的整数天数,而非仅看日期的日数差:

  • 计算pr_date - commit_date时,两者的时间差为-18小时17分5秒,负数向下取整会得到更小的整数,所以.days返回-1。
  • 计算commit_date - pr_date时,时间差为18小时17分5秒,这个时长不足24小时,没有完整的1天,所以.days返回0。

如果你想忽略时分秒,只计算日期部分的差值,只需将两个datetime对象转为date对象后再相减:

print((commit_date.date() - pr_date.date()).days)  # 输出1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 00:36:27