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

Python使用strptime转换日期字符串报错问题求助

解决strptime转换日期时的正则组重复报错问题

嗨,我来帮你排查这个问题~你遇到的sre_constants.error根本不是23不符合%d格式,而是格式字符串里的%x用错啦!

错误原因

%x是Python的strptime格式符里的本地日期表示(比如在美式系统里是mm/dd/yy这种格式),它本身已经包含了日期相关的匹配规则,和你前面写的%d(日)重复了,导致底层正则表达式出现了重复的组名d,所以才抛出了这个报错。

正确的写法

你需要把%x替换成匹配时分秒的%H:%M:%S,因为原字符串里这部分是15:45:43(24小时制的时间)。修正后的代码如下:

from datetime import datetime
date = datetime.strptime('Wed May 23 15:45:43 +0000 2018', '%a %b %d %H:%M:%S %z %Y')

格式符对应说明

给你拆解一下每个格式符对应的原字符串部分:

  • %a → Wed(星期缩写)
  • %b → May(月份缩写)
  • %d → 23(两位数字的日期)
  • %H:%M:%S → 15:45:43(24小时制的时分秒)
  • %z → +0000(时区偏移量)
  • %Y → 2018(四位数字的年份)

运行这段修正后的代码,就能成功把字符串转换成datetime对象啦~

内容的提问来源于stack exchange,提问作者Léo Mouyna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:50:21