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

如何将datetime.timedelta结果转换为全天数或全分钟数?

问题:将datetime.timedelta结果转为全分钟数或带小数的天数展示

预期输出:

minute left: 7023 min
days left: 5.002 day

原代码:

aaa = "2017-09/19 07:11:00"
bbb = "2017-09/24 07:14:00"

result = parser.parse(bbb) - parser.parse(aaa)

print(result)
print(type(result))

当前输出:

5 days, 0:03:00         
<class 'datetime.timedelta'>

解决方案

datetime.timedelta对象的total_seconds()方法可以获取时间差的总秒数,基于这个值就能换算出你需要的格式:

  • 计算全分钟数:将总秒数除以60后取整,得到完整的分钟数
  • 计算带小数的天数:将总秒数除以一天的总秒数(24*3600=86400),再保留三位小数

修改后的代码如下:

from dateutil import parser  # 确保导入parser模块

aaa = "2017-09/19 07:11:00"
bbb = "2017-09/24 07:14:00"

result = parser.parse(bbb) - parser.parse(aaa)

# 输出总分钟数
total_minutes = int(result.total_seconds() // 60)
print(f"minute left: {total_minutes} min")

# 输出带小数的天数,保留三位小数
total_days = result.total_seconds() / (24 * 3600)
print(f"days left: {round(total_days, 3)} day")

运行后输出:

minute left: 7023 min
days left: 5.002 day

说明:

  • total_seconds()会把时间差的天、小时、分钟、秒全部转换成总秒数,避免分段计算的误差
  • 用// 60取整是为了得到整数形式的分钟数,符合预期输出格式
  • 计算天数时用浮点除法,再通过round()保留三位小数,得到带小数的天数结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:40:18