2013-05-03 68 views
0

我試圖將日期字符串轉換爲有效日期蟒蛇格式,但我得到了一個錯誤的日期: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 

如何可以解析爲有效日期,此日期串?

+0

?我依稀記得在添加了'datetime'之後,這個bug在第一個bug修復中得到了修復(Tim Peters的bug報告了他自己的代碼總是令人難忘),這就是......十年前或更久? – abarnert 2013-05-03 23:38:31

回答

1

如果在文檔閱讀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].

4

documentation中所列,%Y是四位數年份的代碼。您應該使用兩位數年份的代碼,%y

1

嘗試:

print datetime.strptime('300413','%d%m%y') 
2013-04-30 00:00:00 

只有Python版本您使用的是改變'%Y''%y'