如何在Python中将AM / PM时间戳转换为24小时格式?

20 浏览
0 Comments

如何在Python中将AM / PM时间戳转换为24小时格式?

我正在尝试将12小时制的时间转换为24小时制的时间...

自动生成的示例时间:

06:35  ## Morning
11:35  ## Morning (If m2 is anywhere between 10:00 and 12:00 (morning to mid-day) during the times of 10:00 and 13:00 (1pm) then the m2 time is a morning time)
1:35  ## Afternoon
11:35  ## Afternoon

示例代码:

m2 = "1:35" ## This is in the afternoon.
m2 = datetime.strptime(m2, "%H:%M")
print m2

预期输出:

13:35

实际输出:

1900-01-01 01:35:00


我尝试了另一种变化,但还是没有帮助 :/

m2 = "1:35" ## This is in the afternoon.
m2split = m2.split(":")
if len(m2split[0]) == 1:
    m2 = ("""%s%s%s%s""" % ("0", m2split[0], ":", m2split[1]))
    print m2
m2temp = datetime.strptime(m2, "%I:%M")
m2 = m2temp.strftime("%H:%M")


我做错了什么,如何修复它?

admin 更改状态以发布 2023年5月21日
0
0 Comments

您需要明确指定您要说的是下午而不是上午。

>>> from datetime import *
>>> m2 = '1:35 PM'
>>> m2 = datetime.strptime(m2, '%I:%M %p')
>>> print(m2)
1900-01-01 13:35:00

0
0 Comments

这种方法使用了strptime和strftime函数,使用格式指令,就像https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior所示。%H表示24小时钟表,%I表示12小时钟表,使用12小时钟表时,%p表示AM或PM。

    >>> from datetime import datetime
    >>> m2 = '1:35 PM'
    >>> in_time = datetime.strptime(m2, "%I:%M %p")
    >>> out_time = datetime.strftime(in_time, "%H:%M")
    >>> print(out_time)
    13:35

0