我的字符串格式目前为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'
答案 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。