问题:
我即将在 Python 2.6 中解析一个日志文件。将通用日志日期字符串解析为时间对象时出现问题:
13/Sep/2012:06:27:18 +0200
我已经尝试过的
采用dateutils.parser.parse
我已经尝试过使用dateutils.parser.parse
,但解析失败并出现以下错误:
ValueError: unknown string format
采用time.strptime
我尝试time.strptime
使用格式字符串%d/%b/%Y:%H:%M:%S %z
,但在解析时区时遇到了麻烦:
ValueError: 'z' is a bad directive in format '%d/%b/%Y:%H:%M:%S %z'
有谁知道,错误在哪里?或者这只是错误的方法?
最终解决方案
最后我决定使用time.strptime
剥离时区信息:
time.strptime(datestring[:-6], '%d/%b/%Y:%H:%M:%S')
不想使用的原因dateutils
是它dateutils
比strptime
(实际上调用 C 函数)慢得多。