簡體   English   中英

如何將 24 小時時間轉換為 12 小時時間?

[英]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

參考http://strftime.org/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM