我试图将日期字符串转换为有效的日期python格式,但是我的日期错误了:
>from datetime import datetime
>mydate = '300413' # is 2013-04-30
>print datetime.strptime(mydate,'%d%m%Y')
>0413-02-01 00:00:00
如何解析有效日期,这个日期字符串?
答案 0 :(得分:4)
如documentation中所列,%Y
是四位数年份的代码。您应该使用两位数年份的代码%y
。
答案 1 :(得分:1)
如果您在文档中阅读strptime()
and strftime()
Behavior,%Y
表示:
以世纪为十进制数的年份[0001,9999]
但你给它一个2位数的年份,没有世纪。
那应该是ValueError
。例如,如果您使用2.5.6,2.7.2,3.2.1或3.3.0进行尝试,则可以得到:
ValueError:时间数据'300413'与格式'%d%m%Y'
不匹配
但是,由于旧版Python中的一个错误,你可能会得到垃圾。
如果您想要一个2位数的年份,请使用%y
,表示:
没有世纪的年份作为十进制数[00,99]。
答案 2 :(得分:1)
尝试:
print datetime.strptime('300413','%d%m%y')
2013-04-30 00:00:00
仅使用'%Y'
'%y'