在python中减去(Apache日志)时间戳字符串?

时间:2013-05-13 20:56:17

标签: python apache logging timestamp

我有一个apache日志,其时间戳如下:

[03/Feb/2013:02:52:05 +0000]

作为一个字符串。为了我的目的,不需要追踪+0000。我的最终目标是在几分钟内获得两个时间戳之间的时差。是否有一种更优雅,更简洁的方法,而不仅仅是以零碎,波纹添加的方式进行黑客攻击和比较元素?

理想情况下,我希望尽可能少地使用字符串,然后再使用它来初始化某种时间对象,它有一个' compare_to()'类型方法。

我对python来说比较新,所以我很抱歉,如果有一个明显的图书馆或方法,但我还没能找到一个。

1 个答案:

答案 0 :(得分:1)

如果您不需要时区偏移量,您可以使用datetime模块来解析数据:

from datetime import datetime

line = '[03/Feb/2013:02:52:05 +0000]'
date = line[1:line.find(' ')]   #  take the string from the second character to the first blank
line_timestamp = datetime.strptime(date, "%d/%b/%Y:%H:%M:%S")

print repr(line_timestamp)
# datetime.datetime(2013, 2, 3, 2, 52, 5)

然后您可以减去这些值。