Python中如何对列表内多个%I:%M:%S格式时间使用strptime累加求和
Python实现时间字符串列表累加求和方案
实现思路
通过datetime.strptime先将每个时间字符串解析为datetime对象,提取时分秒换算为总秒数累加,最后再将总秒数转换为时分秒格式的结果即可。
具体实现步骤
- 导入
datetime模块的datetime类 - 初始化总秒数计数器为0
- 遍历时间列表,逐一解析每个时间字符串并换算为秒累加
- 将累加得到的总秒数格式化为
时:分:秒的结果
完整代码示例
from datetime import datetime # 示例时间列表 total_logs = ['0:00:12', '0:10:02', '1:05:30'] total_seconds = 0 for time_str in total_logs: # 按指定的%I:%M:%S格式解析时间字符串 dt = datetime.strptime(time_str, "%I:%M:%S") # 换算为秒数累加 total_seconds += dt.hour * 3600 + dt.minute * 60 + dt.second # 总秒数转时分秒格式 hours = total_seconds // 3600 remaining = total_seconds % 3600 minutes = remaining // 60 seconds = remaining % 60 result = f"{hours}:{minutes:02d}:{seconds:02d}" print("累加总时长:", result)
注意事项
注意:
%I为12小时制小时格式,合法取值范围是01~12,如果你的时间字符串小时可能出现0值,说明实际是24小时制格式,需要将解析格式替换为%H:%M:%S避免解析错误。
内容的提问来源于stack exchange,提问作者Milind Khobragade
相关产品推荐
相关产品推荐

