Python报错:时间数据'09-01-2014 00:01'不匹配'%m/%d/%Y %H:%M:%S'怎么办
时间格式匹配报错解决方案
报错信息:time data '09-01-2014 00:01' does not match format '%m/%d/%Y %H:%M:%S' (match)
报错原因
该报错由指定的解析格式与实际数据格式存在两处不匹配导致:
- 日期分隔符不匹配:实际数据的日期部分使用横杠
-分隔,你指定的格式中使用斜杠/分隔 - 时间精度不匹配:实际数据的时间仅包含小时、分钟两个维度,你指定的格式中额外增加了秒维度的占位符
%S
修复方案
方案1:调整匹配格式(推荐,性能更优)
如果你的所有时间数据均无秒数,直接将格式字符串调整为'%m-%d-%Y %H:%M'即可,示例代码如下:
from datetime import datetime # 替换为你实际的时间数据字段 time_str = '09-01-2014 00:01' dt_obj = datetime.strptime(time_str, '%m-%d-%Y %H:%M')
方案2:使用自适应解析工具
如果你的数据中部分时间带秒、部分不带,可使用python-dateutil库的自适应解析方法,无需手动指定格式:
from dateutil.parser import parse # dayfirst=False明确指定日期为月-日-年格式,避免解析歧义 dt_obj = parse('09-01-2014 00:01', dayfirst=False)
内容的提问来源于stack exchange,提问作者Nehanshu Nirbhay
相关产品推荐
相关产品推荐

