我遇到了将时间字符串解析为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。
请提出简单的解决方案,而不是复杂的代码,因为我在具有数百万行的日志文件上运行此代码。感谢。
找不到此特定问题的解决方案。
答案 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起,它始终有效。