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

如何获取timedelta的天数数值而非格式化输出?

获取timedelta的精确天数数值

嘿,这个需求我之前也碰到过!你现在遇到的问题是,直接打印timedelta对象时,它会输出格式化的字符串(比如7 days, 5:31:12),但我们需要的是包含小数的原始天数数值。

原因很简单:timedelta的days属性只会返回整数部分,而直接打印对象时会把剩余的时间拆成小时、分钟、秒来展示。要拿到精确的7.23,我们可以利用timedelta的total_seconds()方法来计算:

步骤很直观:

  • 先用total_seconds()获取时间差的总秒数
  • 再除以一天的总秒数(24 * 3600),就能还原出包含小数的精确天数

修改后的代码示例:

import datetime

now = datetime.datetime.now()
com_day = now + datetime.timedelta(days=7.23)
delta_days = com_day - now

# 计算精确的天数
exact_days = delta_days.total_seconds() / (24 * 3600)
print(exact_days)  # 输出接近7.23的数值(可能因datetime精度有微小误差)

另外补充个小细节:因为datetime的精度限制,有时候会得到类似7.229999999999999这样的结果,如果需要严格保留两位小数,可以用round()处理:

print(round(exact_days, 2))  # 输出7.23

这样就能完美得到你想要的精确天数数值啦!

内容的提问来源于stack exchange,提问作者sof-03

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:58:41