2017-06-09 10 views
-2

私は驚いています。私はdatestring形式に渡してから、datedatetimeを使用して変換します。ここに私のコードは次のとおりです。datetime.datetime.strptime()。date()日付を間違った月に変換する

import datetime 
def room(book_date): 
    date_converted = datetime.datetime.strptime(book_date, '%Y-%M-%d').date() 

    print(date_converted) 


if __name__ == '__main__': 

    room('2018-08-07') 

print文のプリントが2018-01-07それは2018-08-07されるべきです。私が月を渡す日はいつも01です。なぜこのように来るのですか?

答えて

4

%Mは、のコードであり、月間ではありません。 %m、小文字を使用してください:あなたは月を解析しませんでしたので

date_converted = datetime.datetime.strptime(book_date, '%Y-%m-%d').date() 

、デフォルトでは(1深夜1月1日のため、1900)が使用されています。

デモ:あなただけの日付に焦点を当てるしていない場合は、エラーが発見し、おそらく簡単です

>>> book_date = '2018-08-07' 
>>> datetime.datetime.strptime(book_date, '%Y-%m-%d') 
datetime.datetime(2018, 8, 7, 0, 0) 
>>> datetime.datetime.strptime(book_date, '%Y-%m-%d').date() 
datetime.date(2018, 8, 7) 
>>> print(_) 
2018-08-07 

>>> datetime.datetime.strptime(book_date, '%Y-%M-%d') 
datetime.datetime(2018, 1, 7, 0, 8) 

分の位置にある8が赤旗する必要があること。

+0

aah!私はそれに気付かなかった。ありがとう! – user2966197

関連する問題