python:值错误 - 时间格式错误

时间:2017-02-02 18:38:53

标签: python datetime strptime python-datetime

我收到以下错误:

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")

我无法弄清楚为什么会收到错误。

1 个答案:

答案 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)

如果在年份和小时之间有一个或两个空格并不重要,则字符串将以任一方式解析。