ValueError:时间数据&1; 2016年1月1日00:09:55'不符合格式&%;%m /%d /%y%H:%M:%S'

时间:2017-10-12 05:08:24

标签: python

>>> dt = '1/1/2016 00:09:55' # It supposes to be month day year
>>> from datetime import datetime
dtp = datetime.strptime(dt, '%m/%d/%y %H:%M:%S')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File 
ValueError: time data '1/1/2016 00:09:55' does not match format '%m/%d/%y %H:%M:%S'

如何解析此时间数据?谢谢。

3 个答案:

答案 0 :(得分:2)

使用%Y代替

dtp = datetime.strptime(dt, '%m/%d/%Y %H:%M:%S')

输出

datetime.datetime(2016, 1, 1, 0, 9, 55)

答案 1 :(得分:1)

%y说明符需要2位数年份。

>>> datetime.strptime('01/01/16 00:09:17', '%m/%d/%y %H:%M:%S')
datetime.datetime(2016, 1, 1, 0, 9, 17)

答案 2 :(得分:0)

 date = datetime.strptime(row[0], '%m/%d/%Y %H:%M:%S %p')

礼物:

  

文件“ C:\ Users \ achow \ Anaconda3 \ lib_strptime.py”,行565,在_strptime_datetime中       tt,分数= _strptime(数据字符串,格式)

     

文件“ C:\ Users \ achow \ Anaconda3 \ lib_strptime.py”,行362,在_strptime中       (数据字符串,格式))

     

ValueError:时间数据'5/23/2016 17:35'与格式'%m /%d /%Y%H:%M:%S%p'不匹配

按以下步骤修复它:

date = datetime.strptime(row[0], '%m/%d/%Y %H:%M')