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

如何将字符串日期'31/3/2017'转换为2017-03-31格式?

解决日期字符串格式转换问题

嘿,我来帮你搞定这个困扰你的日期格式转换问题!你之前的代码其实踩了两个小坑,我给你拆解一下问题所在,再给出正确的实现方式。

问题分析

你的原日期字符串是'31/3/2017'(日/月/年的格式),但你之前的代码存在两个错误:

  • 用datetime.strptime(referencePeriodEndDate,'%Y-%m-%d')时,格式符'%Y-%m-%d'是年-月-日的格式,和原字符串的日/月/年完全不匹配,所以解析会失败;
  • 直接调用referencePeriodEndDate.strftime('%Y-%m-%d')是错误的,因为strftime()是datetime对象的方法,不能直接用在字符串类型上。

正确的实现步骤

要完成转换,需要分两步走:

  1. 先用strptime()把原字符串解析成datetime对象,格式符要匹配原字符串的日/月/年;
  2. 再用strftime()把datetime对象格式化成你想要的年-月-日字符串。

完整代码示例

from datetime import datetime

# 你的原始日期字符串
referencePeriodEndDate = '31/3/2017'

# 第一步:将字符串解析为datetime对象,格式符对应日/月/年
datetime_object = datetime.strptime(referencePeriodEndDate, '%d/%m/%Y')

# 第二步:将datetime对象格式化为目标格式的字符串
formatted_date = datetime_object.strftime('%Y-%m-%d')

print(formatted_date)  # 输出结果:2017-03-31

格式符说明

  • %d:两位数字的日(比如31),如果是单个数字会自动补零(比如3变成03);
  • %m:两位数字的月;
  • %Y:四位数字的年。

这样就能完美完成你想要的格式转换啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:10:52