Python中如何移除timestamp时间戳的毫秒部分(.%f)
时间戳移除毫秒转
%H:%M:%S格式实现方案 根据你手里时间值的类型不同,选对应方法即可:
- 原始值是固定格式的时间字符串(比如示例的
2018-06-29 08:15:27.243860)
优先用字符串截断法,性能最高,不需要引入时间解析逻辑:raw_str = "2018-06-29 08:15:27.243860" # 先按小数点分割丢弃毫秒部分,再取空格后的时分秒段 res = raw_str.split(".")[0].split(" ")[1] # 输出结果:08:15:27 - 原始值是格式不固定的时间字符串
先通过时间解析库把字符串转成结构化时间对象,再按目标格式输出,兼容性最好:from datetime import datetime raw_str = "2018-06-29 08:15:27.243860" # 按原始格式解析为datetime对象 dt = datetime.strptime(raw_str, "%Y-%m-%d %H:%M:%S.%f") res = dt.strftime("%H:%M:%S") # 输出结果:08:15:27 - 原始值是数值型Unix时间戳(带毫秒小数的浮点数/整型)
先取整丢弃毫秒精度,再转成时间对象格式化:from datetime import datetime # 示例带毫秒的时间戳 raw_ts = 1530231327.243860 dt = datetime.fromtimestamp(int(raw_ts)) res = dt.strftime("%H:%M:%S") # 输出结果:对应时区下的08:15:27
注意:如果处理跨时区场景,解析和格式化阶段要统一指定时区,避免时分秒出现时区偏移误差。
内容的提问来源于stack exchange,提问作者Araya
相关产品推荐
相关产品推荐

