Python中如何为无%f的timestamp补零以计算时间差?
解决时间戳解析兼容问题
针对时间戳有时带微秒、有时不带的场景,提供两种可靠的处理方案:
方法一:补全微秒后缀
直接检查时间字符串是否包含小数点(微秒部分的标识),如果没有则追加.000000,统一为带微秒的格式后再解析:
from datetime import datetime def parse_time(timestamp): ts_str = str(timestamp) if '.' not in ts_str: ts_str += '.000000' return datetime.strptime(ts_str, "%H:%M:%S.%f") t1 = data[3] t2 = data[4] d1 = parse_time(t1) d2 = parse_time(t2) print(d2 - d1)
方法二:多格式尝试解析
通过try-except块依次尝试两种格式,优先解析带微秒的格式,失败则降级解析不带微秒的格式:
from datetime import datetime def parse_time(timestamp): ts_str = str(timestamp) try: return datetime.strptime(ts_str, "%H:%M:%S.%f") except ValueError: return datetime.strptime(ts_str, "%H:%M:%S") t1 = data[3] t2 = data[4] d1 = parse_time(t1) d2 = parse_time(t2) print(d2 - d1)
两种方案都能保证正常计算时间差值,方法一逻辑更直接高效,方法二更灵活(后续可扩展支持更多格式)。
内容的提问来源于stack exchange,提问作者spund3
相关产品推荐
相关产品推荐

