python:%z指令的datetime.datetime.strptime错误

时间:2017-10-03 13:42:28

标签: python parsing datetime timestamp strptime

我遇到了将时间字符串解析为datetime的问题。我的代码片段如下:

 datetime.datetime.strptime('16/Sep/2017:00:00:00 +0000', '%d/%b/%Y:%M:%H:%S %z')

我收到以下错误:

 ValueError: 'z' is a bad directive in format '%d/%b/%Y:%M:%H:%S %z'

我使用的是Python 2.7.10。

请提出简单的解决方案,而不是复杂的代码,因为我在具有数百万行的日志文件上运行此代码。感谢。

找不到此特定问题的解决方案。

2 个答案:

答案 0 :(得分:1)

使用dateutil模块解决。这是我的解决方案:

from dateutil.parser import parse
parse('16/Sep/2017:00:00:00 +0000'.replace(':', ' ',1))
datetime.datetime(2015, 6, 24, 0, 1, 3, tzinfo=tzoffset(None, 7200))

Python 2.7。*中有关于%z指令的错误。希望有一天他们能解决这个问题。

答案 1 :(得分:0)

看起来strptime并不总是支持%z。 Python似乎只调用C函数,而strptime不支持你平台上的%z。

注意:从Python 3.2起,它始终有效。