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

Python:将dd-MON-yy格式字符串转换为日期时出错的解决方法

解决Python中dd-MON-yy格式日期字符串解析错误的问题

错误原因

你用错了月份对应的格式符:%m 是匹配数字形式的月份(比如06代表6月),但你的日期字符串里是英文缩写月份JUN,应该用%b来匹配英文月份缩写。%y匹配两位数字年份是正确的,问题核心在月份格式符不匹配。

修正后的代码

如果你的系统默认语言环境是英文,直接用下面的代码即可:

import datetime

date_obj = datetime.datetime.strptime('17-JUN-03', '%d-%b-%y')
print(date_obj)  # 输出:2003-06-17 00:00:00

如果系统默认语言环境不是英文(比如中文),需要先设置英文locale才能解析英文月份缩写:

import datetime
import locale

# 根据操作系统调整locale参数,Windows上可用'en_US',Linux/macOS可用'en_US.UTF-8'
locale.setlocale(locale.LC_TIME, 'en_US.UTF-8')

date_obj = datetime.datetime.strptime('17-JUN-03', '%d-%b-%y')
print(date_obj)

补充说明

  • %b 会匹配英文月份的缩写(如JUN、Jun,大小写通常不敏感,具体取决于locale设置)
  • %y 处理两位年份时,默认规则是:00-69 解析为2000-2069,70-99解析为1970-1999,所以03会被解析为2003

内容的提问来源于stack exchange,提问作者Jim Macaulay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:10:31