私は次の24時間を持っています:
{'Wed': '10:30 - 21:00', 'Sun': '10:30 - 21:00', 'Thu': '10:30 - 21:00',
'Mon': '10:30 - 21:00', 'Fri': '10:30 - 22:00', 'Tue': '10:30 - 21:00',
'Sat': '10:30 - 22:00'}
これを12時間に変換するにはどうすればよいですか?
{'Wed': '10:30 AM - 09:00 PM', 'Sun': '10:30 AM - 09:00 PM',
'Thu': '10:30 AM - 09:00 PM', 'Mon': '10:30 AM - 09:00 PM',
'Fri': '10:30 AM- 10:00 PM', 'Tue': '10:30 AM- 09:00 PM',
'Sat': '10:30 AM - 11:00 PM'}
インテリジェントに変換したい"10.30"
から"10.30 AM"
&"22:30"
から"10:30 PM"
。私は自分のロジックを使用して行うことができますが、if
... Elif
なしでこれをインテリジェントに行う方法はありますか?
>>> from datetime import datetime
>>> d = datetime.strptime("10:30", "%H:%M")
>>> d.strftime("%I:%M %p")
'10:30 AM'
>>> d = datetime.strptime("22:30", "%H:%M")
>>> d.strftime("%I:%M %p")
'10:30 PM'
このコードの重要な点は、 library function time.strptime()
を使用して24時間文字列表現を_time.struct_time
_オブジェクトに解析し、次に library function time.strftime()
この_struct_time
_を希望の12時間形式の文字列にフォーマットします。
ループの作成に問題はなく、dict内の値を繰り返し処理し、文字列をそれぞれ1つの時間値を持つ2つの部分文字列に分割すると仮定します。
各部分文字列について、次のようなコードで時間値を変換します。
_import time
t = time.strptime(timevalue_24hour, "%H:%M")
timevalue_12hour = time.strftime( "%I:%M %p", t )
_
質問 文字列をdatetime に変換する質問にも、役に立つ回答があります。
Pythonのstrftimeは%Iを使用します