Gar*_*eld 36 python datetime string-formatting python-2.7 python-3.x
我有以下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'}
Run Code Online (Sandbox Code Playgroud)
如何将其转换为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'}
Run Code Online (Sandbox Code Playgroud)
我想智能转换"10.30"到"10.30 AM"&"22:30"来"10:30 PM".我可以使用我自己的逻辑但是有没有办法在没有if......的情况下聪明地做到这一点elif?
Tim*_*ker 64
>>> 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'
Run Code Online (Sandbox Code Playgroud)
此代码的关键是使用库函数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 )
Run Code Online (Sandbox Code Playgroud)
问题,将字符串转换为datetime,也有有用的答案.
我知道很多人都以类似的方式回答这个问题,但更简单的方法是
import time
t = time.strftime("%I:%M %p")
print(t)
Run Code Online (Sandbox Code Playgroud)
给出%I12 小时制时钟的小时和%M分钟,%p返回 PM 或 AM 值。就我而言,它返回了
05:27 PM
Run Code Online (Sandbox Code Playgroud)
>>> from datetime import datetime
>>> s = datetime.strptime("13:30", "%H:%M")
>>> print(s.strftime("%r"))
01:30:00 PM
Run Code Online (Sandbox Code Playgroud)