アクセスログの時刻形式を、Rubyでunix のタイムスタンプにしたいのですが、どうするのが簡単なのでしょうか? 01/Jan/2010:00:05:45 +0900 を Time.parse() で一発変換できればいいのですが、できないようです。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2012/02/07 16:53:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:iwadon No.1

回答回数60ベストアンサー獲得回数13

ポイント100pt

年の直後のコロンが余分なので、そこを空白に置き換えればTime.parseが使えます。

require 'time'
Time.parse("01/Jan/2010 00:05:45 +0900")
# => Fri Jan 01 00:05:45 +0900 2010

また、Ruby 1.9をお使いであればTime.strptimeも使えるはずです。

require 'time'
Time.strptime("01/Jan/2010:00:05:45 +0900", "%d/%b/%Y:%H:%M:%S %z")
# => 2010-01-01 00:05:45 +0900

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません