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()
,它们可能与活动区域设置不同。