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

Python 3中如何修改datetime.timedelta对象的字符串格式化输出?

解决timedelta字符串格式化补零的问题

datetime.timedelta的默认字符串转换不会给小时部分补零,要实现每个时间块(时、分、秒)始终显示两位数字的格式,你需要手动提取各时间单位的值,再用格式化字符串输出:

方法一:基于总秒数分解

先获取timedelta的总秒数,再计算对应的时、分、秒,最后用f-string补零格式化:

import datetime

time = datetime.timedelta(seconds=10)
total_sec = time.total_seconds()
hours = int(total_sec // 3600)
minutes = int((total_sec % 3600) // 60)
seconds = int(total_sec % 60)

formatted_time = f"{hours:02d}:{minutes:02d}:{seconds:02d}"
print(formatted_time)  # 输出 '00:00:10'

方法二:利用timedelta内置属性

如果timedelta包含天数,可以直接用days属性换算成小时,再结合seconds属性分解,这种方式更高效:

import datetime

time = datetime.timedelta(days=2, seconds=7300)  # 2天2小时1分40秒
hours = time.days * 24 + time.seconds // 3600
minutes = (time.seconds % 3600) // 60
seconds = time.seconds % 60

formatted_time = f"{hours:02d}:{minutes:02d}:{seconds:02d}"
print(formatted_time)  # 输出 '50:01:40'

以上两种方法都能确保时、分、秒以两位数字展示,适配不同时长的timedelta对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:50:31