代码之家  ›  专栏  ›  技术社区  ›  ohho

如何将apache日志时间转换为activerecord:datetime

  •  4
  • ohho  · 技术社区  · 14 年前

    我想通过ActiveRecord将apache日志保存到MySQL。在apache日志中,默认时间字符串如下所示:

    [13/Aug/2008:00:50:49 -0700]
    

    :datetime 类型?谢谢!

    2 回复  |  直到 14 年前
        1
  •  11
  •   steenslag    14 年前
    apache_time = "[13/Aug/2008:00:50:49 -0700]"
    d = DateTime.strptime( apache_time, "[%d/%b/%Y:%H:%M:%S %Z]")
    

    http://ruby-doc.org/core/classes/Time.src/M000298.html

        2
  •  0
  •   cam    14 年前

    我能得到 DateTime 要在删除年和小时之间的冒号后分析字符串,请执行以下操作:

    # given apache_time = "[13/Aug/2008:00:50:49 -0700]"
    stamp = apache_time.sub %r[(/\d{4}):(\d{2})], '\1 \2'
    datetime = DateTime.parse stamp   # returns DateTime representing "2008-08-13T00:50:49-07:00"