ValueError:时间数据'1/1/17 0:03'与格式'%m /%d /%Y%H:%M'不匹配

问题描述 投票:-3回答:2

我想将csv文件中的时间转换为Python中的日期时间对象,以便我可以计算时差。但是当我这样做时,我一直在犯错误。

我的代码是:import datetime from time import strptime a=datetime.strptime('1/1/17 0:03', '%m/%d/%Y %H:%M') b=datetime.strptime('1/31/17 9:57', '%m/%d/%Y %H:%M')

我已经尝试了两个日期和时间,我一直在得到如下的值错误:

b=datetime.strptime('1/31/17 9:57', '%m/%d/%Y %H:%M')

Traceback (most recent call last):   
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_strptime.py", line 565, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_strptime.py", line 362, in _strptime
    (data_string, format))

ValueError: time data '1/31/17 9:57' does not match format '%m/%d/%Y %H:%M'

我做错了什么?

python datetime strptime
2个回答
1
投票

根据documentation!看起来日期和月份应该为零填充(01,02,... 31),对于年份,您应该使用%y(小写)。时间也应该为零填充(00:03)。


0
投票

您需要使用datetime.strptime()对不同的格式变量进行一些研究。对于月份的'%m',但填充为零。你可以阅读strptime参考on this site here

from datetime import datetime
from time import strptime

a=datetime.strptime('01/01/2017 00:03', '%m/%d/%Y %H:%M')
© www.soinside.com 2019 - 2024. All rights reserved.