具体的には、これを単純化するコードがあります。
from datetime import datetime
date_string = '2009-11-29 03:17 PM'
format = '%Y-%m-%d %H:%M %p'
my_date = datetime.strptime(date_string, format)
# This prints '2009-11-29 03:17 AM'
print my_date.strftime(format)
何が得られますか? Python日付を解析するときに期間指定子を無視するだけですか、それともバカなことをしていますか?
Python time.strftime
docs say:
Strptime()関数とともに使用すると、
%p
ディレクティブは、%I
ディレクティブは、時間を解析するために使用されます。
案の定、%H
から%I
は機能します。
format = '%Y-%m-%d %H:%M %p'
形式は%H
の代わりに%I
を使用しています。 %H
は「24時間」形式であるため、おそらく%p
情報を破棄するだけです。 %H
を%I
に変更すればうまく機能します。
使いました %H
(24時間形式)の代わりに%I
(12時間形式)。
%H(24時間制の時間)を%I(12時間制の時間)に置き換えてみてください。