我正在尝试将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: ',)
我做错了什么?
答案 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)