如何将字符串日期'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对象的方法,不能直接用在字符串类型上。
正确的实现步骤
要完成转换,需要分两步走:
- 先用
strptime()把原字符串解析成datetime对象,格式符要匹配原字符串的日/月/年; - 再用
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
相关产品推荐
相关产品推荐

