Python中字符串转时间戳格式不匹配及时间差计算问题求解
错误原因
你的输入字符串是无分隔符的9位纯数字,而你使用的格式串%H:%M:%S.%f要求字符串包含冒号、点号作为分隔符,二者结构不匹配,因此触发格式解析错误。
实现代码
你需要调整strptime的格式串为和输入结构匹配的%H%M%S%f,同时将解析结果存储到新列表中,再进行时间差计算,完整示例如下:
from datetime import datetime raw_strings = ['091122333','092222222','093333333'] # 1. 解析字符串为datetime对象列表 dt_list = [datetime.strptime(s, '%H%M%S%f') for s in raw_strings] # 2. 生成时间戳列表(Unix时间戳,单位为秒) timestamp_list = [dt.timestamp() for dt in dt_list] # 3. 生成以第一个时间为基准的时间差列表(单位为秒) diff_seconds_list = [(dt - dt_list[0]).total_seconds() for dt in dt_list] # 输出结果验证 print("时间对象列表:", dt_list) print("时间戳列表:", timestamp_list) print("时间差列表:", diff_seconds_list)
可选拓展:计算相邻时间差
如果你需要计算相邻两个时间的差值,可以替换第三步的逻辑为:
adjacent_diff = [(dt_list[i] - dt_list[i-1]).total_seconds() for i in range(1, len(dt_list))] print("相邻时间差列表:", adjacent_diff)
内容的提问来源于stack exchange,提问作者Chris Mcnight
相关产品推荐
相关产品推荐

