datetime字符串格式匹配失败,无法生成date对象求解决方案
解决datetime字符串'08-déc-2022 09:02'解析失败的问题
你的代码解析失败有两个核心原因:
- 年份格式不匹配:格式串使用
%y(两位年份占位符),但目标字符串是4位年份2022,需替换为%Y(四位年份占位符)。 - 月份为法语缩写
déc(对应十二月),Python默认的strptime依赖系统英文区域设置,无法识别法语月份缩写,需指定法语区域。
标准库解决方案(无需第三方依赖)
通过设置法语区域并修正年份格式,即可正常解析:
import datetime import locale # 适配不同操作系统的法语区域命名 try: locale.setlocale(locale.LC_TIME, 'fr_FR.utf-8') # Linux/macOS except: locale.setlocale(locale.LC_TIME, 'fra') # Windows def check_date(get_date): date_obj = datetime.datetime.strptime(get_date, '%d-%b-%Y %H:%M') print('date object format', date_obj) # 测试调用 check_date('08-déc-2022 09:02')
第三方库简化方案(无需处理locale)
如果不想适配系统区域设置,可以使用python-dateutil库的自动解析功能:
from dateutil import parser def check_date(get_date): date_obj = parser.parse(get_date) print('date object format', date_obj) # 测试调用 check_date('08-déc-2022 09:02')
使用前需安装依赖:pip install python-dateutil
内容的提问来源于stack exchange,提问作者Soffyan.js
相关产品推荐
相关产品推荐

