Python将ddmmyy格式转换为有效日期
我试图将日期字符串转换为有效的日期python格式,但得到了错误的日期:Python将ddmmyy格式转换为有效日期,python,date-format,Python,Date Format,我试图将日期字符串转换为有效的日期python格式,但得到了错误的日期: >from datetime import datetime >mydate = '300413' # is 2013-04-30 >print datetime.strptime(mydate,'%d%m%Y') >0413-02-01 00:00:00 如何将此日期字符串解析为有效日期?如中所列,%Y是四位数年份的代码。您应该使用两位数年份的代码,%y如中所列,%y是四位数年份的代码。您应该使
>from datetime import datetime
>mydate = '300413' # is 2013-04-30
>print datetime.strptime(mydate,'%d%m%Y')
>0413-02-01 00:00:00
如何将此日期字符串解析为有效日期?如中所列,%Y
是四位数年份的代码。您应该使用两位数年份的代码,%y
如中所列,%y
是四位数年份的代码。您应该使用两位数年份的代码,%y
如果您在文档中阅读,%y
表示:
以世纪为十进制数字的年份[00019999]
但你给它一个2位数的年份,没有世纪
这应该会引发一个ValueError
。例如,如果您尝试使用2.5.6、2.7.2、3.2.1或3.3.0,您会得到以下结果:
ValueError:时间数据“300413”与格式“%d%m%Y”不匹配
但是,由于Python旧版本中的一个bug,您可能会得到垃圾
如果您想要两位数的年份,请使用%y
,表示:
以十进制数字[00,99]表示的不带世纪的年份
如果您在文档中阅读,%Y
表示:
以世纪为十进制数字的年份[00019999]
但你给它一个2位数的年份,没有世纪
这应该会引发一个ValueError
。例如,如果您尝试使用2.5.6、2.7.2、3.2.1或3.3.0,您会得到以下结果:
ValueError:时间数据“300413”与格式“%d%m%Y”不匹配
但是,由于Python旧版本中的一个bug,您可能会得到垃圾
如果您想要两位数的年份,请使用%y
,表示:
以十进制数字[00,99]表示的不带世纪的年份
尝试:
仅使用'%Y'
更改'%Y'尝试:
仅将'%Y'
更改为'%Y'
您使用的Python版本是什么?我模模糊糊地记得,在添加了datetime
之后的第一次错误修复中,这个错误被修复了(Tim Peters关于他自己代码的错误报告总是令人难忘),那一定是……十年前或者更久以前的事了?你使用的是什么版本的Python?我模模糊糊地记得,在添加了datetime
之后的第一次错误修复中,这个错误被修复了(蒂姆·彼得斯关于他自己代码的错误报告总是令人难忘),那一定是……十年或更久以前?
print datetime.strptime('300413','%d%m%y')
2013-04-30 00:00:00