ParseDate

これはもうひとつの日付解析モジュールです。

このモジュールは与えられた日付表現を解析するメソッドを提供します。 これは、ctime(3)、伝統的な date(1)、 RFC 822 日付、RFC 850 日付、 ISO 8601 の一部、JIS X0301 拡張の一部、などを受けつけます。

使用例

解析結果をTimeオブジェクトにする。

module ParseDate
  def to_time(date, cyear=false)
    ary = parsedate(date, cyear)
    if ary[6] == 'GMT'
      Time::gm(*ary[0..-3])
    else
      Time::local(*ary[0..-3])
    end
  end
  module_function :to_time
end

to_time ("Wed, 24 Jan 01 06:46:26 GMT").localtime => "Wed Jan 24 15:46:26 JST 2001"

なお、time.rb で同様のことができる(time.rb は、parsedate.rb を利 用している)。

require 'time'
p Time.parse("Wed, 24 Jan 01 06:46:26 GMT").localtime
=> Wed Jan 24 15:46:26 JST 2001

モジュール関数

ParseDate.parsedate(date, cyear=false)

dateは日付文字列。 さまざまな形式に対応している。 cyearが指定してあるときは、年を2桁表記から4桁表記に直す。 二桁表記で69以上ならば1900年代、それ未満のときは2000年代とみなされる。 [年, 月, 日, 時, 分, 秒, タイムゾーン, 曜日] の配列が返る。