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

Python:带毫秒与时区的字符串转datetime格式匹配报错,求排查

问题分析与修正

你的格式匹配表达式存在三个关键问题,我来逐个拆解说明:

  • 月份格式符误用:你使用的%m是匹配数字形式的月份(比如01代表一月),但你的时间戳里是月份英文缩写Jan,对应的正确格式符应该是%b。
  • 年份格式符误用:%y仅能匹配两位年份(比如15对应2015),而你的时间戳是完整的四位年份2015,需要替换为%Y。
  • 时区格式符误用:%Z用于匹配时区名称(比如PST、UTC),但你的时间戳里是时区偏移量-0800,对应的格式符应该是%z。

另外补充一点:%f是匹配微秒(六位数字),你的时间戳里是三位毫秒000,Python会自动补零到六位,这部分无需调整。

修正后的代码如下:

from datetime import datetime
timestamp = '05/Jan/2015:17:47:59:000-0800'
datetime_object = datetime.strptime(timestamp, '%d/%b/%Y:%H:%M:%S:%f%z')
print(datetime_object)

注意:时间戳里偏移量和前面的毫秒之间没有分隔符,所以格式字符串里%f后面直接跟%z即可,不需要额外加符号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:54:08