【问题标题】:How can I convert 24 hour time to 12 hour time?如何将 24 小时时间转换为 12 小时时间?
【发布时间】:2012-12-01 01:31:14
【问题描述】:

我有以下 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 的情况下智能地做到这一点?

【问题讨论】:

标签: python datetime python-3.x python-2.7 string-formatting


【解决方案1】:

我知道很多人都以类似的方式回答这个问题,但更简单的方法是

import time
t = time.strftime("%I:%M %p")
print(t)

%I 给出 12 小时制小时,%M 分钟,%p 返回 PM 或 AM 值。就我而言,它返回了

05:27 PM

【讨论】:

    【解决方案2】:
    >>> from datetime import datetime
    >>> s = datetime.strptime("13:30", "%H:%M")
    >>> print(s.strftime("%r"))
    01:30:00 PM
    

    【讨论】:

      【解决方案3】:
      import time
      
      # get current time
      date_time = time.strftime("%b %d %Y %-I:%M %p")
      

      上述输出:2020 年 5 月 27 日晚上 7:26 ...至少现在对我来说是这样;)

      【讨论】:

        【解决方案4】:

        Python 的 strftime 使用 %I

        参考http://strftime.org/

        【讨论】:

        • 这是我的最爱。又快又脏。
        【解决方案5】:
        >>> 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'
        

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 2012-04-09
            • 2013-10-14
            • 1970-01-01
            • 1970-01-01
            • 2017-06-27
            • 2021-12-24
            • 1970-01-01
            • 2010-10-01
            • 1970-01-01
            相关资源
            最近更新 更多