2013-05-17 44 views
13

我需要解析代表6位數日期字符串格式yymmdd其中yy範圍從59到05年(1959至2005年)。按照time模塊文檔,Python的默認軸今年是1969年,這將不適合我。如何分析與2位數年份字符串的日期?

有一種簡單的方法來覆蓋樞軸年,或者你可以建議一些其他的解決辦法?我正在使用Python 2.7。謝謝!

回答

18

我會用datetime並正常解析它。然後我會使用datetime.datetime.replace的對象,如果它是你過去的天花板日期 - 調整回100年:

import datetime 
dd = datetime.datetime.strptime(date,'%y%m%d') 
if dd.year > 2005: 
    dd = dd.replace(year=dd.year-100) 
1

前面加上世紀用自己的支點您的日期:

year = int(date[0:2]) 
    if 59 <= year <= 99: 
     date = '19' + date 
    else 
     date = '20' + date 

,然後使用strptime%Y指令,而不是%y

1
import datetime 
date = '20-Apr-53' 
dt = datetime.datetime.strptime(date, '%d-%b-%y') 
if dt.year > 2000: 
    dt = dt.replace(year=dt.year-100) 
        ^2053 ^1953 
print dt.strftime('%Y-%m-%d') 
0

您也可以執行以下操作:

today=datetime.datetime.today().strftime("%m/%d/%Y") 
today=today[:-4]+today[-2:] 
相關問題