我已经检查了很多与此主题相关的问题,但我无法找到错误。
我的代码可以简化为:
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'
有人能看到我的错误吗? 提前致谢
答案 0 :(得分:6)
年份指令应采用上限:
date_time = datetime.strptime(date + " " + time, '%Y/%m/%d %H:%M:%S.%f')
# ^
%y
没有世纪的年份为零填充十进制数
%Y
年份,以世纪为十进制数。
参考:
答案 1 :(得分:2)
%y
是“没有世纪作为零填充十进制数的年份”的说明符,表示两位数字。请改用%Y
。
答案 2 :(得分:1)
如果您对datetime directives不是很熟悉,我建议您改用dateutil.parser
。它简单得多。例如:
INTERCEPT