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

Python多格式日期转换为YYYY/MM/DD格式问题求助

解决dateutil.parser解析日/月/年格式日期的歧义问题

嘿,我完全懂你遇到的困扰!dateutil.parser虽然好用,但它默认会根据常见的日期格式习惯(比如美式的MM/DD/YYYY)来猜测结构,当碰到像03/04/2018这种两种解读都合理的日期时,就会优先按美式格式解析,导致结果不符合你的预期。

解决方案:指定dayfirst=True参数

你只需要在调用parse方法时加上dayfirst=True,明确告诉解析器优先把第一个数字当作日期,这样就能统一按日/月/年的规则解析了:

from dateutil.parser import parse

# 解析日/月/年格式的日期,指定dayfirst=True
a = parse("03/04/2018", dayfirst=True)
final_date = a.strftime('%y/%m/%d')  # 按你需要的两位年格式输出
print(final_date)  # 输出:18/04/03,符合预期

# 测试另一个日期也能正常工作
a = parse("19/04/2018", dayfirst=True)
final_date = a.strftime('%y/%m/%d')
print(final_date)  # 输出:18/04/19,和之前的正确结果一致

额外小提示

如果你的场景更复杂,比如存在多种完全不同的日期格式,可能需要针对每种格式用datetime.strptime来精准匹配,但对于大部分日在前的日期解析场景,dayfirst=True已经足够解决问题啦。

内容的提问来源于stack exchange,提问作者Piyush S. Wanare

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:08:49