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

如何将mm:ss.ms格式时间转换为ss.ms格式?Python实现求助

解决时间格式转换保留毫秒的问题

嘿,这个问题的关键在于你用了time.strptime,它返回的struct_time对象不包含微秒/毫秒信息,所以你丢失了.44这部分数据!咱们换用datetime模块来处理就没问题了,下面给你两种靠谱的解法:

方法一:直接计算总秒数

用datetime.strptime解析字符串,它返回的datetime对象会完整保留分钟、秒和微秒,之后咱们直接计算总秒数:

from datetime import datetime

time_str = "01:40.44"
dt = datetime.strptime(time_str, '%M:%S.%f')
total_seconds = dt.minute * 60 + dt.second + dt.microsecond / 1000000
print(total_seconds)  # 输出 100.44

针对你提到的1:03.091,运行后会得到63.091,如果需要保留两位小数,加个round(total_seconds, 2)就行,结果就是63.09。

方法二:用timedelta计算

利用timedelta的total_seconds()方法,它会自动帮你把所有时间单位转换成秒,包括微秒:

from datetime import datetime, timedelta

time_str = "01:40.44"
dt = datetime.strptime(time_str, '%M:%S.%f')
time_delta = timedelta(
    minutes=dt.minute,
    seconds=dt.second,
    microseconds=dt.microsecond
)
print(time_delta.total_seconds())  # 输出 100.44

为啥原来的代码不行?

time.strptime虽然能解析%f格式,但它返回的struct_time没有专门存储微秒的字段,所以你拿到的x.tm_sec只是整数40,.44这部分直接丢失了,自然计算出来的总秒数是100.0而不是100.44。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:36:41