2013-05-17 11 views
13

yymmddの形式で6桁の日付を表す文字列を解析する必要があります。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 

、代わりに%y%Yディレクティブでstrptimeを使用しています。

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:] 
関連する問題