2012-12-13 335 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""10.30 AM" & "22:30""10:30 PM"。我可以使用自己的邏輯,但有沒有一種方法可以智能地執行此操作,而不需要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

的關鍵在於這個代碼是使用library function time.strptime()到24小時字符串表示解析爲time.struct_time對象,然後使用library function time.strftime()struct_time格式化爲您的12小時制格式的字符串。

我假設你沒有麻煩寫一個循環,遍歷字典中的值,並將字符串分解爲兩個子字符串,每個字符串具有一個時間值。

對於每個子串,轉換的時間價值與類似的代碼:

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

問題,Converting string into datetime,也有很多實用的答案。

相關問題