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
相关产品推荐
相关产品推荐

