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

如何直接将无前导零的日期字符串'10624'转为Python date对象

解决Python中混合位数日期字符串的解析问题

首先明确:Python标准库的datetime.strptime不支持可变位数的日期格式匹配——%m要求必须是两位数字,直接用%m%d%y会把字符串前两位10当成月份,不符合需求;而%-m这类格式符仅在部分系统的strftime中生效,且strptime本身不支持该写法。

如果不能对原字符串'10624'做补零、拆分等格式化操作,你可以通过直接提取对应位置字符转数值的方式构造date对象,这种方式不算修改原字符串结构:

from datetime import date

date_str = '10624'
month = int(date_str[0])       # 取第一个字符作为月份
day = int(date_str[1:3])       # 取第2-3位作为日期
year = 2000 + int(date_str[3:])# 取最后两位补20前缀作为年份(若为19xx需调整前缀)

result_date = date(year, month, day)
print(result_date)  # 输出:2024-01-06

另一种可选方案是使用dateutil.parser模块(需先安装python-dateutil),它能智能识别非标准格式,通过参数避免歧义:

from dateutil import parser

date_str = '10624'
# dayfirst=True强制优先解析日期,避免把10识别为月份
result_date = parser.parse(date_str, dayfirst=True)
print(result_date.date())  # 输出:2024-01-06

注意:dateutil.parser的智能解析存在歧义风险,若有固定格式规则,手动提取的方式更可靠。

内容的提问来源于stack exchange,提问作者Shreyas bhong

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 23:25:05