关于python:如何将24小时时间转换为12小时时间?

How can I convert 24 hour time to 12 hour time?

我有以下24小时时间:

1
2
3
{'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小时?

1
2
3
4
{'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,有没有一种智能地做到这一点?EDOCX1?5?


1
2
3
4
5
6
7
>>> 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中的值以及将字符串分成两个子字符串,每个子字符串有一个时间值。

对于每个子字符串,使用以下代码转换时间值:

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

这个问题,将字符串转换成日期时间,也有一些有用的答案。


python的strftime使用%i

参考http://strftime.org/