48

次の 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"ifelif

4

6 に答える 6

101
>>> 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'
于 2012-12-13T07:46:02.530 に答える
15

このコードの鍵は、ライブラリ関数を使用して 24 時間文字列表現をオブジェクトに解析し、ライブラリ関数time.strptime()time.struct_time使用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 )

Converting string into datetimeという質問にも役立つ回答があります。

于 2012-12-13T07:56:31.810 に答える