2012-12-13 16 views
28

私は、次の24時間の時間を持っている:24時間から12時間に変換するにはどうすればよいですか?

{'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 PM""10.30 AM" & "22:30""10.30"を変換したいです。私は自分のロジックを使用して行うことができますが、 if ... elifなしでこれを知的に実行する方法はありますか?

+1

似ていますが、他の方法でラウンドhttp://stackoverflow.com/questions/440061/convert-12-hour-date-time-to-24-時間日時 – Trufa

答えて

48
>>> 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' 
+0

@JFSebastian:絶対に!ありがとう! –

8

このコードの鍵は、希望の12時間形式の文字列にこのstruct_timeをフォーマットするlibrary function time.strftime()を使用し、その後、time.struct_timeオブジェクトに24時間の文字列表現を解析するlibrary function time.strptime()を使用することです。

私は、ループを書くこと、dictの値を反復すること、そして文字列を1つの時間値を持つ2つの部分文字列に分割することは問題ないと仮定します。また、役に立つ答えを持っている、

import time 
t = time.strptime(timevalue_24hour, "%H:%M") 
timevalue_12hour = time.strftime("%I:%M %p", t) 

質問、Converting string into datetime

は、各部分について、次のようなコードで時間値を変換します。

関連する問題