[英]How can I convert 24 hour time to 12 hour time?
我有以下 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'
此代碼的關鍵是使用庫函數time.strptime()
將 24 小時字符串表示解析為time.struct_time
對象,然后使用庫函數time.strftime()
將此struct_time
格式化為您想要的字符串12 小時制。
我假設您可以毫無困難地編寫一個循環,遍歷 dict 中的值並將字符串分成兩個子字符串,每個子字符串都有一個時間值。
對於每個子字符串,使用如下代碼轉換時間值:
import time
t = time.strptime(timevalue_24hour, "%H:%M")
timevalue_12hour = time.strftime( "%I:%M %p", t )
問題Converting string into datetime也有有用的答案。
>>> from datetime import datetime
>>> s = datetime.strptime("13:30", "%H:%M")
>>> print(s.strftime("%r"))
01:30:00 PM
我知道很多人以類似的方式回答這個問題,但更簡單的方法是
import time
t = time.strftime("%I:%M %p")
print(t)
%I
給出 12 小時制小時和%M
分鍾, %p
返回 PM 或 AM 值。 就我而言,它返回了
05:27 PM
import time
# get current time
date_time = time.strftime("%b %d %Y %-I:%M %p")
以上輸出:2020 年 5 月 27 日晚上 7:26 ......至少現在對我來說 ;)
Python 的 strftime 使用 %I
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.