web-dev-qa-db-ja.com

24時間を12時間に変換するにはどうすればよいですか?

私は次の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なしでこれをインテリジェントに行う方法はありますか?

35
Garfield
>>> 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'
64
Tim Pietzcker

このコードの重要な点は、 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 に変換する質問にも、役に立つ回答があります。

9
Jim DeLaHunt

Pythonのstrftimeは%Iを使用します

参照 http://strftime.org/

0
javis