我試圖將日期字符串轉換爲有效日期蟒蛇格式,但我得到了一個錯誤的日期:Python的轉換DDMMYY格式的有效日期
>from datetime import datetime
>mydate = '300413' # is 2013-04-30
>print datetime.strptime(mydate,'%d%m%Y')
>0413-02-01 00:00:00
如何可以解析爲有效日期,此日期串?
我試圖將日期字符串轉換爲有效日期蟒蛇格式,但我得到了一個錯誤的日期:Python的轉換DDMMYY格式的有效日期
>from datetime import datetime
>mydate = '300413' # is 2013-04-30
>print datetime.strptime(mydate,'%d%m%Y')
>0413-02-01 00:00:00
如何可以解析爲有效日期,此日期串?
如果在文檔閱讀strptime()
and strftime()
Behavior,%Y
表示:
Year with century as a decimal number [0001,9999]
但是你給它一個2位數的一年,沒有世紀。
這應該會引起ValueError
。例如,如果你有2.5.6,2.7.2,3.2.1,3.3.0或者試試吧,你會得到這樣的:
ValueError: time data '300413' does not match format '%d%m%Y'
但是,由於一個bug在舊版本的Python,你可能反而得到垃圾。
如果你想有一個2位數的年份中,使用%y
,當手段:
Year without century as a decimal number [00,99].
如documentation中所列,%Y
是四位數年份的代碼。您應該使用兩位數年份的代碼,%y
。
嘗試:
print datetime.strptime('300413','%d%m%y')
2013-04-30 00:00:00
只有Python版本您使用的是改變'%Y'
與'%y'
?我依稀記得在添加了'datetime'之後,這個bug在第一個bug修復中得到了修復(Tim Peters的bug報告了他自己的代碼總是令人難忘),這就是......十年前或更久? – abarnert 2013-05-03 23:38:31