Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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 故障排除';ValueError:时间数据。。。不匹配格式';使用datetime.strTime时_Python_Strptime - Fatal编程技术网

Python 故障排除';ValueError:时间数据。。。不匹配格式';使用datetime.strTime时

Python 故障排除';ValueError:时间数据。。。不匹配格式';使用datetime.strTime时,python,strptime,Python,Strptime,我的输入字符串是'16-MAR-2010 03:37:04',我想将其存储为datetime 我正在尝试使用: db_inst.HB_Create_Ship_Date = datetime.strptime(fields[7]," %d-%b-%Y %H:%M:%S ") fields[7] = '16-MAR-2010 03:37:04' 我得到一个错误: ::ValueError: time data '16-MAR-2010 03:37:04' does not match form

我的输入字符串是
'16-MAR-2010 03:37:04'
,我想将其存储为datetime

我正在尝试使用:

db_inst.HB_Create_Ship_Date = datetime.strptime(fields[7]," %d-%b-%Y %H:%M:%S ") 
fields[7] = '16-MAR-2010 03:37:04' 
我得到一个错误:

::ValueError: time data '16-MAR-2010 03:37:04' does not match format ' %d-%b-%Y %H:%M:%S ' 

丢失格式前后的空格。我认为strtime是根据为您的机器编写C运行时的人的突发奇想而记录的。然而,似乎我错了。这意味着Python中有一个bug

Windows上的Python 2.6.4不喜欢前导和尾随空格;见下文

*x用户,你发现了什么

同时,使用最小的公分母——去掉空格。正如Adam所提到的,您可能还存在区域设置问题

带空格:

>>> datetime.datetime.strptime('16-MAR-2010 03:37:04'," %d-%b-%Y %H:%M:%S ")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\python26\lib\_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data '16-MAR-2010 03:37:04' does not match format ' %d-%b-%Y %H
:%M:%S '

丢失格式前后的空格。我认为strtime是根据为您的机器编写C运行时的人的突发奇想而记录的。然而,似乎我错了。这意味着Python中有一个bug

Windows上的Python 2.6.4不喜欢前导和尾随空格;见下文

*x用户,你发现了什么

同时,使用最小的公分母——去掉空格。正如Adam所提到的,您可能还存在区域设置问题

带空格:

>>> datetime.datetime.strptime('16-MAR-2010 03:37:04'," %d-%b-%Y %H:%M:%S ")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\python26\lib\_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data '16-MAR-2010 03:37:04' does not match format ' %d-%b-%Y %H
:%M:%S '

格式字符串有前导空格和尾随空格,但输入字符串没有。删除起始引号后和结束引号前的空格。

格式字符串有前导空格和尾随空格,但输入字符串没有。删除起始引号后和结束引号前的空格。

尝试以下操作:

db_inst.HB_Create_Ship_Date = datetime.strptime(fields[7],"%d-%b-%Y %H:%M:%S")
另外,请将作为Python中日期时间格式的参考。

尝试以下方法:

db_inst.HB_Create_Ship_Date = datetime.strptime(fields[7],"%d-%b-%Y %H:%M:%S")
另外,请使用作为Python中日期时间格式设置的参考。

编辑:
作为一个例子,让自己更轻松,并删除前导空格和尾随空格

另一个想法:
您当前的帐户可能不会将“MAR”指定为月份缩写

该代码的输出给出了什么

import locale
locale.getdefaultlocale()
我在Linux机器(Ubuntu 9.10、Python 2.6.4)上测试了您的代码,得到了ValueError。
我删除了空格,改为非英语语言环境(捷克语),得到了ValueError

学术笔记:
奇怪的是,您的代码在Windows XP Python 2.5.5上运行时使用了额外的空格:

>>> from datetime import datetime
>>> dt = '16-MAR-2010 03:37:04'
>>> datetime.strptime(dt, " %d-%b-%Y %H:%M:%S ")
datetime.datetime(2010, 3, 16, 3, 37, 4)
编辑:
作为一个例子,让自己更轻松,并删除前导空格和尾随空格

另一个想法:
您当前的帐户可能不会将“MAR”指定为月份缩写

该代码的输出给出了什么

import locale
locale.getdefaultlocale()
我在Linux机器(Ubuntu 9.10、Python 2.6.4)上测试了您的代码,得到了ValueError。
我删除了空格,改为非英语语言环境(捷克语),得到了ValueError

学术笔记:
奇怪的是,您的代码在Windows XP Python 2.5.5上运行时使用了额外的空格:

>>> from datetime import datetime
>>> dt = '16-MAR-2010 03:37:04'
>>> datetime.strptime(dt, " %d-%b-%Y %H:%M:%S ")
datetime.datetime(2010, 3, 16, 3, 37, 4)

locale模块的文档提到“ABMON_1…ABMON_12返回第n个月的缩写名”,但这些(以及其他有用的东西)似乎不存在。有什么线索吗?@John:在WinXP Python 2.5版上使用了前导空格和尾随空格。刚刚在Ubuntu(Python2.6.4)上试用并得到了ValueError。刚刚在Python的哪个版本上试用了*nix的哪个表现形式?您感兴趣的是
locale.getlocale(locale.LC_TIME)
,而不是
getdefaultlocale()
,这可能与活动区域设置不同。区域设置模块的文档中提到“”“ABMON_1。。。ABMON_12返回第n个月的缩写名“”,但这些(和其他有用的东西)似乎不存在。有什么线索吗?@John:在WinXP Python 2.5版上使用了前导空格和尾随空格。刚刚在Ubuntu(Python 2.6.4)上试用过并得到了ValueError。只是在哪一版本的Python上尝试了*nix的哪种表现形式?您感兴趣的是
locale.getlocale(locale.LC\u TIME)
,而不是
getdefaultlocale()
,它们可能与活动区域设置不同。