datetime.strptime 意外行为 - 区域设置问题
datetime.strptime unexpected behavior - locale issue
想知道是否有人有解决我遇到的奇怪错误的方法 datetime.datetime.strptime
。
注意:不是时区问题的重复。
我遇到这个异常(修剪专有部分):
Traceback (most recent call last):
...
File "/usr/local/lib/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data 'Jul 10 12:45:52 2016' does not match format '%b %d %H:%M:%S %Y'
此异常发生在真实数据的 运行 时间内。但是当我用相同的数据在本地测试它时它能工作吗?!
您甚至可以自己测试,异常本身没有多大意义,因为我实际上可以使用该格式来匹配日期时间格式:
>>> from datetime import datetime
>>> s = 'Jul 10 12:45:52 2016'
>>> p = '%b %d %H:%M:%S %Y'
>>> d = datetime.strptime(s, p)
>>> print d
2016-07-10 12:45:52
真的不确定这里发生了什么。任何帮助表示赞赏。 (Python 2.7.11)
多亏了deceze's ,我才能够找到解决这个问题的方法。
确实,问题出在机器的区域设置上。
(对于某些背景,我正在一台机器上验证证书,而该机器的区域设置与证书的时间戳不同)
解决方法很简单,只需在验证证书之前在机器上设置语言环境即可。
locale.setlocale(locale.LC_ALL, 'en_US.utf8')
想知道是否有人有解决我遇到的奇怪错误的方法 datetime.datetime.strptime
。
注意:不是时区问题的重复。
我遇到这个异常(修剪专有部分):
Traceback (most recent call last):
...
File "/usr/local/lib/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data 'Jul 10 12:45:52 2016' does not match format '%b %d %H:%M:%S %Y'
此异常发生在真实数据的 运行 时间内。但是当我用相同的数据在本地测试它时它能工作吗?!
您甚至可以自己测试,异常本身没有多大意义,因为我实际上可以使用该格式来匹配日期时间格式:
>>> from datetime import datetime
>>> s = 'Jul 10 12:45:52 2016'
>>> p = '%b %d %H:%M:%S %Y'
>>> d = datetime.strptime(s, p)
>>> print d
2016-07-10 12:45:52
真的不确定这里发生了什么。任何帮助表示赞赏。 (Python 2.7.11)
多亏了deceze's
确实,问题出在机器的区域设置上。
(对于某些背景,我正在一台机器上验证证书,而该机器的区域设置与证书的时间戳不同)
解决方法很简单,只需在验证证书之前在机器上设置语言环境即可。
locale.setlocale(locale.LC_ALL, 'en_US.utf8')