日期时间格式与内容不匹配

时间:2016-10-17 12:26:13

标签: python datetime

我已经检查了很多与此主题相关的问题,但我无法找到错误。

我的代码可以简化为:

date = "2016/07/20"
time = "11:44:20.920"

date_time = datetime.strptime(date + " " + time, '%y/%m/%d %H:%M:%S.%f')

我得到的错误如下:

Traceback (most recent call last):
  File "adma_shortener.py", line 50, in <module>
    adma_time[ii] = datetime.strptime(a, '%y/%m/%d %H:%M:%S.%f').replace(microsecond=0)
  File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data '2016/07/20 11:44:20.920' does not match format '%y/%m/%d %H:%M:%S.%f'

有人能看到我的错误吗? 提前致谢

3 个答案:

答案 0 :(得分:6)

年份指令应采用上限:

date_time = datetime.strptime(date + " " + time, '%Y/%m/%d %H:%M:%S.%f')
#                                                  ^
  

%y没有世纪的年份为零填充十进制数

     

%Y年份,以世纪为十进制数。

参考:

http://strftime.org/

答案 1 :(得分:2)

%y是“没有世纪作为零填充十进制数的年份”的说明符,表示两位数字。请改用%Y

答案 2 :(得分:1)

如果您对datetime directives不是很熟悉,我建议您改用dateutil.parser。它简单得多。例如:

INTERCEPT