将12小时时间字符串转换为日期时间或时间

时间:2016-10-02 16:55:07

标签: python datetime time

我一直在尝试使用time.strptime(string1,'%H:%M'),但没有成功

我如何获得以下内容:

Input     Output
3:14AM  -> 03:14
9:33PM  -> 21:33
12:21AM -> 00:21
12:15PM -> 12:15

3 个答案:

答案 0 :(得分:1)

问题要求您首先strptime使用%I 12小时,然后为AM或PM添加指令%p以获取时间对象; altogther '%I:%M%p'。然后使用strftime将时间对象格式化为字符串:

试验:

>>> tm = time.strptime('12:33AM', '%I:%M%p')
>>> time.strftime('%H:%M', tm)
'00:33'
>>> tm = time.strptime('9:33PM', '%H:%M%p')
>>> time.strftime('%H:%M', tm)
'09:33'

文档参考:https://docs.python.org/2/library/time.html

答案 1 :(得分:1)

使用%I 12小时,%p使用ampm,如下所示:

from datetime import datetime

for t in ["3:14AM", "9:33PM", "12:21AM", "12:15PM"]:
    print datetime.strptime(t, '%I:%M%p').strftime("%H:%M")

给你以下输出:

03:14
21:33
00:21
12:15 

使用的格式记录在strftime() and strptime() Behavior

答案 2 :(得分:0)

您错过了%p(Locale相当于AM或PM)。

time.strptime(string1,'%H:%M%p')