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

标签 python apache logging timestamp

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

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

作为字符串。就我的目的而言,不需要尾随+0000。我的最终目标是获得两个时间戳之间的时间差(以分钟为单位)。有没有比仅仅以零碎、链式 react 的方式对元素进行分解和比较更优雅、更简洁的方法呢?

理想情况下,我希望在使用字符串初始化某种类型的时间对象之前对字符串进行尽可能少的操作,该对象具有“compare_to()”类型方法。

我对 python 比较陌生,所以如果有一个明显的库或方法可以实现这一点,我很抱歉,但我一直找不到。

最佳答案

如果不需要时区偏移量,可以直接使用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)

然后您只需减去这些值即可。

关于python - 在Python中减去(Apache日志)时间戳字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16530992/

相关文章:

php - DB2 iSeries PDO VARCHAR

java - 验证由 Play! 的 Logger 类编写的日志消息

logging - NLog LogException 似乎忽略了异常

python - 在 Python 中是否有用于格式化的键盘快捷键?

python - 多处理 python-server 创建了太多的临时目录

apache - 在 ErrorDocument 消息中设置字符集

python - 如何更改 Django 日志记录的日期格式?

python - 使用 Python lib 请求发送列表

python - Tensorflow 不能用 cudnn 的问题

python - 当我的 virtualenv 有 python3.5 时,为什么 django 1.9 继续使用 python2.7 ?