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

如何使用Python将如221201的数字序列转换为日期格式?

将YYMMDD格式的数字序列转换为Python日期对象

方法1:使用Python标准库datetime

Python自带的datetime模块是处理这类固定格式日期的最可靠方案,通过strptime()方法可以直接指定格式解析字符串:

from datetime import datetime

# 单个日期转换
date_str = "221201"
date_obj = datetime.strptime(date_str, "%y%m%d").date()
print(date_obj)  # 输出:2022-12-01

# 批量转换列表中的日期字符串
date_str_list = ["221201", "230115", "210630"]
date_list = [datetime.strptime(s, "%y%m%d").date() for s in date_str_list]
print(date_list)
# 输出:[datetime.date(2022, 12, 1), datetime.date(2023, 1, 15), datetime.date(2021, 6, 30)]

格式参数说明:

  • %y:两位数字年份(00-99),默认映射规则为00-49对应2000-2049,50-99对应1950-1999
  • %m:两位数字月份(01-12)
  • %d:两位数字日期(01-31)

如果需要自定义年份映射(比如把99映射为2099而非1999),可以手动拆分字符串处理:

date_str = "991231"
year = int(date_str[:2]) + 2000  # 强制映射到20xx年
month = int(date_str[2:4])
day = int(date_str[4:6])
custom_date = datetime(year, month, day).date()
print(custom_date)  # 输出:2099-12-31

方法2:使用dateutil库(修正解析参数)

你之前使用dateutil失败的原因是未明确解析规则,默认情况下dateutil.parser会误判格式。只需添加yearfirst=True参数,告知解析器优先识别前两位为年份:

from dateutil import parser

date_str = "221201"
date_obj = parser.parse(date_str, yearfirst=True).date()
print(date_obj)  # 输出:2022-12-01

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:20:25