python,ValueError尝试从12h转换为24h时

时间:2015-06-08 19:20:58

标签: python

我正在尝试将12小时的日期时间转换为24小时的日期时间。这是我的代码:

_dt = "05/08/2015 1:19 PM"
dt12h = time.strptime(_dt, "%m/%d/%Y %I:%M %p")
t2 = time.strftime('%d/%m/%y %H:%M:%S %z', dt12h)
dt = datetime.strptime(t2, "%d/%m/%y %H:%M:%S")

但是我收到了这个错误:

ValueError('unconverted data remains: ',)

我做错了什么?

1 个答案:

答案 0 :(得分:3)

您的t2值有一个尾随空格,因为%z为空(没有时区):

>>> from datetime import datetime
>>> _dt = "05/08/2015 1:19 PM"
>>> dt12h = time.strptime(_dt, "%m/%d/%Y %I:%M %p")
>>> t2 = time.strftime('%d/%m/%y %H:%M:%S %z', dt12h)
>>> t2
'08/05/15 13:19:00 '

您的datetime.strptime()格式化程序没有考虑到这一点。

无需解析,格式化,然后再次解析。只需直接用datetime.strptime()解析; datetime完全能够解析12小时的时间:

>>> dt = datetime.strptime(_dt, "%m/%d/%Y %I:%M %p")
>>> dt
datetime.datetime(2015, 5, 8, 13, 19)