我收到以下错误:
ValueError: time data 'Feb 1, 2017 0:03 pm' does not match format '%b %d, %Y %I:%M %p'
以下是代码:
from datetime import datetime
latest_datetime = 'Feb 1, 2017 0:03 pm'
datetime_obj = datetime.strptime(latest_datetime, "%b %d, %Y %I:%M %p")
我无法弄清楚为什么会收到错误。
答案 0 :(得分:2)
12小时制没有0
小时; %I
只会匹配1到12.您的时间戳有一个不可能的时间:
0:03 pm
来自strftime()
and strptime()
Behavior documentation:
%I
小时(12小时制)作为零填充十进制数 01,02,...,12
假设0
确实是12
,您可以将' 0:'
替换为'12:'
来修复此问题(请注意零的前导空格!):
>>> from datetime import datetime
>>> latest_datetime = 'Feb 1, 2017 0:03 pm'
>>> datetime.strptime(latest_datetime.replace(' 0:', '12:'), "%b %d, %Y %I:%M %p")
datetime.datetime(2017, 2, 1, 12, 3)
如果在年份和小时之间有一个或两个空格并不重要,则字符串将以任一方式解析。