python strptime错误的格式与12小时小时

时间:2012-05-22 17:07:17

标签: python strptime

我的字符串格式目前为datetime.strptime(date_as_string, '%d/%m/%y %I:%M %p')

这很遗憾不适用于输入,例如 1/12/07 00:07 AM

我如何能够重新认识这种格式?

编辑:

  

ValueError:时间数据'1/12/07 00:07 AM'格式'%d /%m /%y%I:%M%p'

2 个答案:

答案 0 :(得分:4)

'00'不是有效的12小时制,但如果输入日期字符串格式不一致,您可能会得到以下内容:

>>> from datetime import datetime as dt
>>> date_as_string = '1/12/07 00:07 AM'
>>> format_12 = '%d/%m/%y %I:%M %p'
>>> format_24 = '%d/%m/%y %H:%M %p'
>>> date_string, time_string = date_as_string.split(' ', 1)
>>> try:
...     dt.strptime(date_string + ' ' + time_string, format_12)
... except ValueError:
...     dt.strptime(date_string + ' ' + time_string, format_24)
... 
datetime.datetime(2007, 12, 1, 0, 7)

答案 1 :(得分:1)

'1/12/07 00:07 AM'格式不正确,因为在12小时格式中,小时可以在1-12范围内,而不是0。