如何使用pandas将XML提取的时间字符串转换为仅含时间的时间戳
解决方法
你需要的是字符串格式的时间戳,不需要转成datetime类型(pandas的datetime类型默认必须携带日期信息,所以会自动补默认日期),可以用以下两种方案实现:
方案1:直接拆分字符串(格式固定时优先用,最简单)
因为你拿到的Date字段固定为月/日/年 时:分:秒 AM/PM的格式,按空格拆分后取最后两部分拼接即可:
date_str = data['RunInfo']['Run']['Date'] target_time = ' '.join(date_str.split()[-2:]) # 输出结果:3:08:02 PM
方案2:用标准库datetime解析(兼容性更强,适合格式可能有微小变化的场景)
如果后续XML的日期格式可能出现补零(比如09/10/2021)、日期位数变化的情况,用标准库解析更稳妥:
from datetime import datetime date_str = data['RunInfo']['Run']['Date'] # 先按完整格式解析为datetime对象 dt = datetime.strptime(date_str, "%m/%d/%Y %I:%M:%S %p") # 格式化输出目标时间,lstrip('0')用于去掉小时位的前导零,匹配你需要的格式 target_time = dt.strftime("%I:%M:%S %p").lstrip('0') # 输出结果:3:08:02 PM
注意事项
如果需要24小时制的时间格式,把格式符里的%I换成%H、去掉%p即可。
内容的提问来源于stack exchange,提问作者BCArg
相关产品推荐
相关产品推荐

