2012-07-13 36 views
3

我在讀一組使用日期和類似以下範例數字數據文件:使用的Python大紀元失敗,出現2位數的年份

datetime.datetime.strptime(dateVariable, "%b-%y") 

Jan-61 25.3 
Feb-61 23.5 
Mar-61 37.9 
Apr-61 40.6 

我讀的日期

兩位數的年份引發了一個問題,因爲小於70的數字(例如,時代年)被解釋爲在2000年代而不是在1900年代。

編輯所有文件並更改日期格式將非常困難。有沒有辦法告訴日期時間以不同的方式解釋兩位數的年份?

回答

3

您必須在某處繪製粗線。舉例來說,如果你不接受將來的日期(即「軍-12」是2012年,但「8 - 12」是1912年):

dt = datetime.datetime.strptime(dateVariable, "%b-%y") 
if dt > datetime.now(): 
    dt = dt - datetime.timedelta(years=100) 
0

年不是datetime.timedelta有效的參數(至少不在Python 2.7中),所以你實際上需要使用:

dt = datetime.datetime(dt.years - 100, dt.month, dt.day, dt.hours, dt.minutes, dt.seconds) 
相關問題