Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为日期python_Python_Datetime_Strptime - Fatal编程技术网

将字符串转换为日期python

将字符串转换为日期python,python,datetime,strptime,Python,Datetime,Strptime,下面是关于如何在python中将字符串转换为日期对象的指南,但我遇到了一个我不太理解的错误 我正在努力做到以下几点: buildDateArray.append(dt.strptime(date,"%y-%b-%d %H:%M:%S")) 但我得到了下面的错误: buildDateArray.append(dt.strptime(date,"%y-%b-%d %H:%M:%S")) File "/usr/lib64/python2.6/_strptime.py", line 325

下面是关于如何在python中将字符串转换为日期对象的指南,但我遇到了一个我不太理解的错误

我正在努力做到以下几点:

buildDateArray.append(dt.strptime(date,"%y-%b-%d %H:%M:%S"))
但我得到了下面的错误:

    buildDateArray.append(dt.strptime(date,"%y-%b-%d %H:%M:%S"))
  File "/usr/lib64/python2.6/_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data '2014-11-17 00:00:00' does not match format '%y-%b-%d %H:%M:%S'
我不明白为什么“2014-11-17 00:00:00”与格式“%y-%b-%d%H:%M:%S”不匹配


您能看到错误是什么吗?

您的格式有两个问题:

%y匹配两位数的年份,但您的年份包含4。改用%Y大写字母Y

%b匹配命名月份,缩写为;改为使用%m来匹配数字月份;你需要在这里匹配11,而不是11月

演示:

当你面对这样的问题时,试着把它缩小到组件;例如,您可以只尝试年份部分,它仍然会失败,但另一个错误会给您一个很大的提示,说明它可能失败的原因:

>>> datetime.strptime('2014', '%y')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/mpietre/Development/Library/buildout.python/parts/opt/lib/python2.7/_strptime.py", line 328, in _strptime
    data_string[found.end():])
ValueError: unconverted data remains: 14

由于您使用的是,因此需要查看正确的文档,请参阅;它详细说明了每个模式匹配的内容。

您的格式有两个问题

使用大写Y来匹配四位数的年份,而不是小写Y,因为它只匹配两位数 使用%m而不是%b来匹配数字月份,而不是缩写月份,即11月对11月 您的最终格式为:

"%Y-%m-%d %H:%M:%S"
"%Y-%m-%d %H:%M:%S"