我正在解析日志文件,该日志文件的时间戳中具有可变的datetime格式。我正在将以下字符串:Feb 22 08:58:24 router1
传递给dateutil.parser.parse()
来尝试提取时间戳,如下所示:
>>> dateutil.parser.parse('Feb 22 08:58:24 router1', fuzzy=True)
datetime.datetime(2001, 2, 22, 8, 58, 24)
结果为日期:February 22nd, 2001
为什么将这一年解析为2001年而不是当年的2019年?
答案 0 :(得分:2)
解析器将忽略router
,而不忽略其旁边的1
。可以通过传递fuzzy_with_tokens=True
参数来检查。输出结果是一个元组,其中第一项是时间戳的日期时间对象表示,第二项是被忽略的字符串。
from dateutil import parser
print(parser.parse('Feb 22 08:58:24 router1', fuzzy_with_tokens=True))
#Output:
(datetime.datetime(2001, 2, 22, 8, 58, 24), (' ', ' router'))