如何将 24 小时制转换为 12 小时制?

新手上路,请多包涵

我有以下 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'}

I want to intelligently convert "10.30" to "10.30 AM" & "22:30" to "10:30 PM" .我可以使用我自己的逻辑,但有没有办法智能地做到这一点 ifelif

原文由 Garfield 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答
>>> 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'

原文由 Tim Pietzcker 发布,翻译遵循 CC BY-SA 3.0 许可协议

此代码的关键是使用 库函数 time.strptime() 将 24 小时字符串表示形式解析为 time.struct_time 对象,然后使用 库函数 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 也有有用的答案。

原文由 Jim DeLaHunt 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题