Python解析‘9/15/2021 1:36:05 PM’格式日期字符串报错如何解决
报错原因
- 格式符重复冲突:
datetime.strptime内部会将格式符转换为命名正则分组进行解析,你在格式字符串中先后两次使用了%m(第一次用来匹配月份,第二次错误用来匹配分钟),导致m分组重复定义,直接触发该报错。 - 日期顺序匹配错误:输入日期格式为
月/日/年(示例9/15/2021中15为日期,对应第一位的9是月份),原格式串错误使用了代表日/月/年的%d/%m/%Y,顺序不匹配。 - 时间制式匹配缺失:输入时间为12小时制带AM/PM标识,原代码使用了代表24小时制的
%H,同时未添加上下午标识的匹配规则。 - 分钟格式符使用错误:分钟对应的格式符为大写
%M,小写%m仅用于匹配月份。
正确解析方案
使用对应匹配规则的格式串即可正常解析,示例代码如下:
from datetime import datetime row = {"Last Updated": "9/15/2021 1:36:05 PM"} date_3 = datetime.strptime(row['Last Updated'], '%m/%d/%Y %I:%M:%S %p')
各格式符对应规则:
%m:匹配1~2位数字的月份%d:匹配1~2位数字的日期%Y:匹配4位数字的年份%I:匹配1~2位数字的12小时制小时%M:匹配分钟%S:匹配秒%p:匹配AM/PM上下午标识
内容的提问来源于stack exchange,提问作者uniquemagicshop
相关产品推荐
相关产品推荐

