2016-05-28 13 views
0

私はdatetime型に文字列を変換しようとしましたが、私は次のように発生しました:2070年以上のPythonで文字列をdatetimeオブジェクトに変換するには?

S='30-01-50' 
datetime.datetime.str 
>>datetime.date(2050, 1, 30) 

しかし

S='30-01-70' 
datetime.datetime.strptime(S,"%d-%m-%y").date() 
>>datetime.date(1970, 1, 30) 

なぜ2070?。このような日時の値をどのようにして算術演算を実行するのですか?

+0

ここで文字列が明白でないという問題はありませんか? Pythonは9999までの年をサポートしていますが、1970は* 70のために*得るべきものです。入力はどこから来ていますか? – jonrsharpe

+0

私はS = '30 -01-1970 'を試しましたが、エラーがスローされました:トレースバック(最新の最後の呼び出し): ファイル ""、行1、 ファイル "/usr/lib/python2.7/_strptime 。data_string [found.end():]) ValueError:変換されていないデータが残ります:70 –

+0

パターンを%yから%Yに変更しませんでした。どうして? – jonrsharpe

答えて

0

クイックリファレンスは、this answerを参照してください。

クイックアンサー:2桁の年を使用せず、4桁の年と%Y指定子を使用してください。

関連する問題