You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用strptime解析时间报ValueError:格式不匹配如何解决

报错原因

你使用的时间解析格式与实际传入的时间字符串结构不匹配,存在三处问题:

  • 实际时间串末尾包含毫秒值.11,格式串中未添加匹配毫秒/微秒的%f占位符
  • 实际时间串不存在上午/下午标识(AM/PM),但格式串末尾加了%p占位符
  • %H是24小时制的小时表示,本身不需要搭配用于标识上下午的%p使用,%p一般配合12小时制的%I占位符使用

解决方案

根据你的实际业务需求选择对应处理方式即可:

方案1:完全匹配现有时间串结构

如果需要保留毫秒值,直接修改格式串为:

utc = dt.strptime(timeEntry.get(), "%Y-%m-%d %H:%M:%S.%f")

方案2:截断毫秒后解析

如果不需要处理毫秒,可以先截取时间串到秒的部分再解析:

# 从右往左按第一个点分割,取前面的时间部分
time_raw = timeEntry.get().rsplit('.', 1)[0]
utc = dt.strptime(time_raw, "%Y-%m-%d %H:%M:%S")

方案3:后续需要解析带AM/PM的时间

如果你的业务场景后续会传入12小时制带上下午标识的时间,需要先调整时间输出逻辑,确保输出的时间串符合年-月-日 时:分:秒 上下午标识的结构,同时将小时占位符替换为%I,示例:

# 对应时间串格式示例:2021-11-11 05:01:12 AM
utc = dt.strptime(timeEntry.get(), "%Y-%m-%d %I:%M:%S %p")

内容的提问来源于stack exchange,提问作者William Mears

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:24:03