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

问题描述 投票:0回答: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
投票

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


0
投票

您需要使用 datetime.strptime() 对不同的格式变量进行一些研究。对于月份的“%m”,但用零填充。您可以在此处阅读此站点上的 strptime 参考

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.