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

如何在Python中将字符串1/6/23转换为2023-01-06格式的datetime对象?

在Python中将"1/6/23"格式字符串转换为datetime对象的方法

要把格式为1/6/23(对应2023年1月6日)的字符串转换成2023-01-06格式的datetime/date对象,核心是用datetime模块的strptime方法匹配正确格式符,下面是具体说明和修正后的代码:

关键格式符说明

输入字符串是月/日/两位年份结构,对应格式符为%m/%d/%y:

  • %m:自动匹配带或不带前导零的月份(如1或01)
  • %d:自动匹配带或不带前导零的日期(如6或06)
  • %y:解析两位年份(如23会自动转换为2023)

原代码存在两处问题:print语句缺少闭合括号,且误用了%Y(四位年份格式符),和输入的两位年份不匹配。

修正后的代码示例

from datetime import datetime

chosen_start_date = "1/6/23"

# 查看原字符串类型
print(type(chosen_start_date))
# 解析为datetime对象
dt_obj = datetime.strptime(chosen_start_date, "%m/%d/%y")
print(type(dt_obj))
# 转换为date对象(仅保留日期部分)
date_obj = dt_obj.date()
print(type(date_obj))
# 输出指定格式的日期字符串
print(date_obj.strftime("%Y-%m-%d"))  # 输出结果:2023-01-06

平台兼容性补充

你原代码里的%#m/%#d是Windows平台下强制去掉前导零的写法,但strptime本身就能识别不带前导零的数字,用%m/%d/%y的跨平台兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:52:25