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

Python中如何将H:MM:SS格式时间差转为HH:MM:SS格式?

解决timedelta转不含微秒的HH:MM:SS格式问题

你的问题出在两个核心点:

  1. datetime.strptime的参数顺序搞反了——正确顺序是时间字符串在前,格式字符串在后;
  2. 就算修正顺序,0:00:01这种单小时位的字符串,和要求两位小时的%H:%M:%S格式不匹配,依然会触发报错。

而且本质上你不需要用strptime,因为它是用来解析字符串为时间对象的工具,而你要做的是格式化时间差为指定格式。下面给你两种靠谱的实现方式:


方法一:直接操作timedelta对象(推荐)

既然你得到的avg_inqueue_time是timedelta类型,直接用它的属性和方法处理最稳妥:

from datetime import timedelta

# 假设这是你的时间差对象
avg_inqueue_time = timedelta(seconds=1.11)

# 取整总秒数(自动去掉微秒)
total_sec = int(avg_inqueue_time.total_seconds())
# 拆分小时、分钟、秒
hours = total_sec // 3600
minutes = (total_sec % 3600) // 60
seconds = total_sec % 60
# 格式化两位数字的HH:MM:SS
formatted_time = f"{hours:02d}:{minutes:02d}:{seconds:02d}"
# 输出结果:"00:00:01"

方法二:处理已拆分微秒的字符串

如果你已经通过split(".")[0]得到了0:00:01这样的字符串,可以拆分后再格式化:

time_str = "0:00:01"
# 拆分时分秒
h, m, s = time_str.split(":")
# 转成整数后按两位格式输出
formatted_time = f"{int(h):02d}:{int(m):02d}:{int(s):02d}"
# 输出结果:"00:00:01"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 12:54:26