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

dateparser.parse处理小于13的日期值时出现日月互换问题

问题原因

你调用dateparser.parse的传参方式有误,该方法第二个参数为配置字典,而非直接传入日期格式字符串。你传入的d/M/yyyy参数并未生效,dateparser会自动推断日期格式:当日、月数值均小于13时,默认优先按月/日/年的常见北美格式解析,因此出现日月互换;当日期数值大于13时,系统可自动识别出该字段为日,因此结果符合预期。

解决方法

在settings参数中通过DATE_FORMATS字段明确指定你的日期格式即可,示例代码如下:

import dateparser

# 明确指定日期格式为d/M/YYYY
res1 = dateparser.parse('13/11/1990', settings={'DATE_FORMATS': ['d/M/YYYY']})
print(res1) # 输出:1990-11-13 00:00:00

res2 = dateparser.parse('8/9/1990', settings={'DATE_FORMATS': ['d/M/YYYY']})
print(res2) # 输出:1990-09-08 00:00:00

如果你的所有待解析日期都为日/月/年顺序,也可以通过配置PREFER_DAY_FIRST参数全局生效,避免每次指定格式:

# 全局优先按日/月/年顺序解析
dateparser.parse('8/9/1990', settings={'PREFER_DAY_FIRST': True})

内容的提问来源于stack exchange,提问作者Vikas Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:06:03