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

python: datetime.datetime.strptime error with %z directive

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

 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.

请想出简单的解决方案,而不是像我这样复杂的代码 运行 这是一个有数百万行的日志文件。谢谢

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

已通过使用 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 指令的错误。希望有一天他们会修好它。

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

注意: 从 Python 3.2 开始它将始终有效。