Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Timeクラス

class Time

クラスの継承リスト: Time < Comparable < Object < Kernel < BasicObject

Abstract

時刻を表すクラスです。

Time.now は現在の時刻を返します。 File.mtime などが返すファイルのタイムスタンプは Time オブジェクトです。

Time オブジェクトは時刻を起算時からの経過秒数で保持しています。 起算時は協定世界時(UTC、もしくはその旧称から GMT とも表記されます) の 1970年1月1日午前0時です。なお、うるう秒を勘定するかどうかはシステムに よります。

現在の Unix システムでの最大時刻は、 協定世界時の2038年1月19日午前3時14分7秒 です。

Time オブジェクトが格納可能な時刻の範囲は環境によって異なります。 範囲の下限としては、上記起算時からの経過秒数として 0 および正数しか 受け付けない環境もあれば、負数も受け付ける環境もあります。 また、範囲の上限としては、上記の Unix システムでの最大時刻を越えて 64bit 値の範囲の経過秒数を受け付ける環境もあります。 さらに、他に特定の時点を越える時刻の値を受け付けない環境もあります。 Time オブジェクトを生成する各メソッドで、それぞれの環境での範囲外の 時刻を格納しようとした場合は例外が発生します。

また、Time オブジェクトは協定世界時と地方時のどちらのタイムゾー ンを使用するかのフラグを内部に保持しています。 タイムゾーンのフラグは Marshal データに保持されます。

p Marshal.load(Marshal.dump(Time.now.gmtime)).zone
# => "UTC"

time ライブラリによって、Time.parse, Time.rfc2822, Time.httpdate, Time.iso8601 等が拡張されます。

localtime(3) も参照しください。

C 言語との違いに注意

C 言語の tm 構造体とは異なり、month は 1 月に対 して 1 を返し、year は 1998 年に対して 1998 を返します。また、 yday は 1 から数えます。

特異メソッド

at(time) -> Time

time で指定した時刻の Time オブジェクトを返します。

生成された Time オブジェクトのタイムゾーンは地方時となります。

[PARAM] time:
Time オブジェクト、もしくは起算時からの経過秒数を表わす数値で指定します。
at(time, usec) -> Time

time + (usec/1000000) の時刻を表す Time オブジェクトを返します。 浮動小数点の精度では不十分な場合に使用します。

生成された Time オブジェクトのタイムゾーンは地方時となります。

[PARAM] time:
起算時からの経過秒数を表わす整数を指定します。
[PARAM] usec:
マイクロ秒を整数で指定します。
gm(year, mon = 1, day = 1, hour = 0, min = 0, sec = 0, usec = 0) -> Time
utc(year, mon = 1, day = 1, hour = 0, min = 0, sec = 0, usec = 0) -> Time

引数で指定した協定世界時の Time オブジェクトを返します。

第2引数以降に nil を指定した場合の値はその引数がとり得る最小の値です。

[PARAM] year:
年を整数か文字列で指定します。例えば 1998 年に対して 1998 を指定します。 ただし、0 以上 38 以下の整数が与えられた場合は、2000年代の下2桁だと解釈します。 69 以上 138 以下の整数が与えられた場合は、1900 にその数を足した年だと解釈されます。
[PARAM] mon:
1(1月)から 12(12月)の範囲の整数または文字列で指定します。 英語の月名("Jan", "Feb", ... などの省略名。文字の大小は無視)も指定できます。
[PARAM] day:
日を 1 から 31 までの整数か文字列で指定します。
[PARAM] hour:
時を 0 から 23 までの整数か文字列で指定します。
[PARAM] min:
分を 0 から 59 までの整数か文字列で指定します。
[PARAM] sec:
秒を 0 から 60 までの整数か文字列で指定します。
[PARAM] usec:
マイクロ秒を整数か文字列で指定します。
[EXCEPTION] ArgumentError:
与えられた引数の範囲が valid でない場合に発生します。
p Time.gm(2000, 1, 1)  #=> Sat Jan 01 00:00:00 UTC 2000
gm(sec, min, hour, mday, mon, year, wday, yday, isdst, zone) -> Time
utc(sec, min, hour, mday, mon, year, wday, yday, isdst, zone) -> Time

引数で指定した協定世界時の Time オブジェクトを返します。

引数の順序は Time#to_a と全く同じです。 引数 wday, yday, zone に指定した値は無視されます。 引数に nil を指定した場合の値はその引数がとり得る最小の値です。

[PARAM] sec:
秒を 0 から 60 までの整数か文字列で指定します。
[PARAM] min:
分を 0 から 59 までの整数か文字列で指定します。
[PARAM] hour:
時を 0 から 23 までの整数か文字列で指定します。
[PARAM] day:
日を 1 から 31 までの整数か文字列で指定します。
[PARAM] mon:
1(1月)から 12(12月)の範囲の整数か文字列で指定します。 英語の月名("Jan", "Feb", ... などの省略名。文字の大小は無視)も指定できます。
[PARAM] year:
年を整数か文字列で指定します。例えば 1998 年に対して 1998 を指定します。 ただし、0 以上 38 以下の整数が与えられた場合は、2000年代の下2桁だと解釈します。 69 以上 138 以下の整数が与えられた場合は、1900 にその数を足した年だと解釈されます。
[PARAM] isdst:
指定した日時が夏時間(Daylight Saving Time)なら true を指定します。 そうでないなら、false を指定します。
[PARAM] wday:
無視されます。
[PARAM] yday:
無視されます。
[PARAM] zone:
無視されます。
[EXCEPTION] ArgumentError:
与えられた引数の範囲が valid でない場合に発生します。
local(year, mon = 1, day = 1, hour = 0, min = 0, sec = 0, usec = 0) -> Time
mktime(year, mon = 1, day = 1, hour = 0, min = 0, sec = 0, usec = 0) -> Time

引数で指定した地方時の Time オブジェクトを返します。

第2引数以降に nil を指定した場合の値はその引数がとり得る最小の値です。

[PARAM] year:
年を整数か文字列で指定します。例えば 1998 年に対して 1998 を指定します。 ただし、0 以上 38 以下の整数が与えられた場合は、2000年代の下2桁だと解釈します。 69 以上 138 以下の整数が与えられた場合は、1900 にその数を足した年だと解釈されます。
[PARAM] mon:
1(1月)から 12(12月)の範囲の整数または文字列で指定します。 英語の月名("Jan", "Feb", ... などの省略名。文字の大小は無視)も指定できます。
[PARAM] day:
日を 1 から 31 までの整数か文字列で指定します。
[PARAM] hour:
時を 0 から 23 までの整数か文字列で指定します。
[PARAM] min:
分を 0 から 59 までの整数か文字列で指定します。
[PARAM] sec:
秒を 0 から 60 までの整数か文字列で指定します。
[PARAM] usec:
マイクロ秒を整数か文字列で指定します。
[EXCEPTION] ArgumentError:
与えられた引数の範囲が valid でない場合に発生します。
p Time.local(2000, 1, 1) #=> Sat Jan 01 00:00:00 +0900 2000
local(sec, min, hour, mday, mon, year, wday, yday, isdst, zone) -> Time
mktime(sec, min, hour, mday, mon, year, wday, yday, isdst, zone) -> Time

引数で指定した地方時の Time オブジェクトを返します。

引数の順序は Time#to_a と全く同じです。 引数 wday, yday, zone に指定した値は無視されます。 引数に nil を指定した場合の値はその引数がとり得る最小の値です。

[PARAM] sec:
秒を 0 から 60 までの整数か文字列で指定します。
[PARAM] min:
分を 0 から 59 までの整数か文字列で指定します。
[PARAM] hour:
時を 0 から 23 までの整数か文字列で指定します。
[PARAM] day:
日を 1 から 31 までの整数か文字列で指定します。
[PARAM] mon:
1(1月)から 12(12月)の範囲の整数か文字列で指定します。 英語の月名("Jan", "Feb", ... などの省略名。文字の大小は無視)も指定できます。
[PARAM] year:
年を整数か文字列で指定します。例えば 1998 年に対して 1998 を指定します。 ただし、0 以上 38 以下の整数が与えられた場合は、2000年代の下2桁だと解釈します。 69 以上 138 以下の整数が与えられた場合は、1900 にその数を足した年だと解釈されます。
[PARAM] isdst:
指定した日時が夏時間(Daylight Saving Time)なら true を指定します。 そうでないなら、false を指定します。
[PARAM] wday:
無視されます。
[PARAM] yday:
無視されます。
[PARAM] zone:
無視されます。
[EXCEPTION] ArgumentError:
与えられた引数の範囲が valid でない場合に発生します。
new -> Time
now -> Time

現在時刻の Time オブジェクトを生成して返します。 タイムゾーンは地方時となります。

times -> Struct::Tms

このメソッドは obsolete です。

自身のプロセスとその子プロセスが消費したユーザ/システム CPU 時間の積算を Struct::Tms のオブジェクトとして返します。 Struct::Tms は以下のメンバを持つ構造体クラスです。

  • utime # user time
  • stime # system time
  • cutime # user time of children
  • cstime # system time of children

時間の単位は秒で、浮動小数点数で与えられます。詳細は times(3) を参照してください。

このメソッドは Process.#times に移動しました。Time.times も使えます が、警告メッセージが出力されます。

インスタンスメソッド

self + other -> Time

self より other 秒だけ後の時刻を返します

[PARAM] other:
自身からの秒数を数値で指定します。
t = Time.now         #=> Wed Apr 09 08:56:03 CDT 2003
t + (60 * 60 * 24)   #=> Thu Apr 10 08:56:03 CDT 2003
self - time -> Float

自身と time との時刻の差を Float で返します。単位は秒です。

[PARAM] time:
自身との差を算出したい Time オブジェクトを指定します。
t = Time.now       #=> Wed Apr 09 08:56:03 CDT 2003
t2 = t + 2592000   #=> Fri May 09 08:56:03 CDT 2003
t2 - t             #=> 2592000.0
self - sec -> Time

自身より sec 秒だけ前の時刻を返します。

[PARAM] sec:
実数を秒を単位として指定します。
t = Time.now       #=> Wed Apr 09 08:56:03 CDT 2003
t2 = t + 2592000   #=> Fri May 09 08:56:03 CDT 2003
t2 - 2592000       #=> Wed Apr 09 08:56:03 CDT 2003
self <=> other -> -1 | 0 | 1 | nil

self と other の時刻を比較します。self の方が大きい場合は 1 を、等しい場合は 0 を、 小さい場合は -1 を返します。比較できない場合は、nil を返します。

[PARAM] other:
自身と比較したい時刻を Time オブジェクトで指定します。
asctime -> String
ctime -> String

時刻を asctime(3) の形式の文字列に変換します。た だし、末尾の改行文字 "\n" は含まれません。

mday -> Integer
day -> Integer

日を整数で返します。

p Time.local(2000, 1, 1).day #=> 1
isdst -> bool
dst? -> bool

自身が表す日時が夏時間なら true を返します。そうでないなら false を返します。

ENV['TZ'] = 'US/Pacific'
Time.local(2000, 7, 1).isdst   #=> true
Time.local(2000, 1, 1).isdst   #=> false
eql?(other) -> bool

other が Time かそのサブクラスのインスタンスであり自身と時刻が等しい場合に true を返します。そうでない場合に false を返します。

[PARAM] other:
自身と比較したい時刻を Time オブジェクトを指定します。
friday? -> bool

自身の表す時刻が金曜日である場合に true を返します。 そうでない場合に false を返します。

getgm -> Time
getutc -> Time

タイムゾーンを協定世界時に設定した Time オブジェクトを新しく 生成して返します。

t = Time.local(2000,1,1,20,15,1)   #=> Sat Jan 01 20:15:01 CST 2000
t.gmt?                             #=> false
y = t.getgm                        #=> Sun Jan 02 02:15:01 UTC 2000
y.gmt?                             #=> true
t == y                             #=> true
getlocal -> Time

タイムゾーンを地方時に設定した Time オブジェクトを新しく生成 して返します。

t = Time.gm(2000,1,1,20,15,1)   #=> Sat Jan 01 20:15:01 UTC 2000
t.gmt?                          #=> true
l = t.getlocal                  #=> Sat Jan 01 14:15:01 CST 2000
l.gmt?                          #=> false
t == l                          #=> true
gmt? -> bool
utc? -> bool

self のタイムゾーンが協定世界時に設定されていれば真を返します。

utc_offset -> Integer
gmt_offset -> Integer
gmtoff -> Integer

協定世界時との時差を秒を単位とする数値として返します。

地方時が協定世界時よりも進んでいる場合(アジア、オーストラリアなど) には正の値、遅れている場合(アメリカなど)には負の値になります。

p Time.now.zone  # => "JST"
p Time.now.utc_offset
# => 32400

タイムゾーンが協定世界時に設定されている場合は 0 を返します。

p Time.now.zone  # => "JST"
p Time.now.getgm.utc_offset
# => 0
gmtime -> self
utc -> self

タイムゾーンを協定世界時に設定します。

このメソッドを呼び出した後は時刻変換を協定世界時として行ないます。

Time#localtime, Time#gmtime の挙動はシステムの localtime(3) の挙動に依存します。Time クラ スでは時刻を起算時からの経過秒数として保持していますが、ある特定の 時刻までの経過秒は、システムがうるう秒を勘定するかどうかによって異 なる場合があります。システムを越えて Time オブジェクトを受け 渡す場合には注意する必要があります。

t = Time.now   #=> Wed Apr 09 08:56:03 CDT 2003
t.gmt?         #=> false
t.gmtime       #=> Wed Apr 09 13:56:03 UTC 2003
t.gmt?         #=> true
hour -> Integer

時を整数で返します。

localtime -> self

タイムゾーンを地方時に設定します。

このメソッドを呼び出した後は時刻変換を協定地方時として行ないます。

Time#localtime, Time#gmtime の挙動はシステムの localtime(3) の挙動に依存します。Time クラ スでは時刻を起算時からの経過秒数として保持していますが、ある特定の 時刻までの経過秒は、システムがうるう秒を勘定するかどうかによって異 なる場合があります。システムを越えて Time オブジェクトを受け 渡す場合には注意する必要があります。

t = Time.gm(2000, "jan", 1, 20, 15, 1)
t.gmt?        #=> true
t.localtime   #=> Sat Jan 01 14:15:01 CST 2000
t.gmt?        #=> false
min -> Integer

分を整数で返します。

mon -> Integer
month -> Integer

月を整数で返します。

p Time.local(2000, 1, 1).month #=> 1
monday? -> bool

自身の表す時刻が月曜日である場合に true を返します。 そうでない場合に false を返します。

nsec -> Integer
tv_nsec -> Integer

時刻のナノ秒の部分を整数で返します。

t = Time.now        #=> 2007-11-17 15:18:03 +0900
"%10.9f" % t.to_f   #=> "1195280283.536151409"
t.nsec              #=> 536151406

IEEE 754 浮動小数点数で表現できる精度が違うため、Time#to_fの最小 の桁とnsecの最小の桁は異なります。nsecで表される値の方が正確です。

saturday? -> bool

自身の表す時刻が土曜日である場合に true を返します。 そうでない場合に false を返します。

sec -> Integer

秒を整数で返します。

strftime(format) -> String

時刻を format 文字列に従って文字列に変換した結果を返します。

[PARAM] format:
フォーマット文字列を指定します。使用できるものは 以下の通りです。
  • %A: 曜日の名称(Sunday, Monday ... )
  • %a: 曜日の省略名(Sun, Mon ... )
  • %B: 月の名称(January, February ... )
  • %b: 月の省略名(Jan, Feb ... )
  • %c: 日付と時刻
  • %d: 日(01-31)
  • %H: 24時間制の時(00-23)
  • %I: 12時間制の時(01-12)
  • %j: 年中の通算日(001-366)
  • %M: 分(00-59)
  • %m: 月を表す数字(01-12)
  • %p: 午前または午後(AM,PM)
  • %S: 秒(00-60) (60はうるう秒)
  • %U: 週を表す数。最初の日曜日が第1週の始まり(00-53)
  • %W: 週を表す数。最初の月曜日が第1週の始まり(00-53)
  • %w: 曜日を表す数。日曜日が0(0-6)
  • %X: 時刻
  • %x: 日付
  • %Y: 西暦を表す数
  • %y: 西暦の下2桁(00-99)
  • %Z: タイムゾーン [[unknown:trap|trap::Time]]
  • %%: %自身

現在の実装では、このメソッドは、システムの strftime(3) をそのまま使用しています。そのためここにあげた指示子以外のものが使 用できる場合があります。ただし、上記以外の指示子を使用した場合、移 植性をそこなう可能性がある点に注意してください。

t = Time.now
t.strftime("Printed on %m/%d/%Y")   #=> "Printed on 04/09/2003"
t.strftime("at %I:%M%p")            #=> "at 08:56AM"
succ -> Time

self に 1 秒足した Time オブジェクトを生成して返します。

t = Time.now
p t
p t.succ
# => Sun Jul 18 01:41:22 JST 2004
     Sun Jul 18 01:41:23 JST 2004
sunday? -> bool

自身の表す時刻が日曜日である場合に true を返します。 そうでない場合に false を返します。

t = Time.now   #=> Sun Oct 23 00:14:54 UTC 2005
t.sunday?      #=> true
thursday? -> bool

自身の表す時刻が木曜日である場合に true を返します。 そうでない場合に false を返します。

to_a -> Array

時刻を10要素の配列で返します。その要素は順序も含めて以下の通りです。

  • sec: 秒 (整数 0-60)
  • min: 分 (整数 0-59)
  • hour: 時 (整数 1-24)
  • mday: 日 (整数)
  • mon: 月 (整数 1-12)
  • year: 年 (整数 2000年=2000)
  • wday: 曜日 (整数 0-6)
  • yday: 年内通算日 (整数 1-366)
  • isdst: 夏時間であるかどうか (true/false)
  • zone: タイムゾーン (文字列)
p Time.now      # => Mon Oct 20 06:02:10 JST 2003
p Time.now.to_a # => [10, 2, 6, 20, 10, 2003, 1, 293, false, "JST"]

要素の順序は C 言語の tm 構造体に合わせています。ただし、 tm 構造体に zone はありません。

注意: C 言語の tm 構造体とは異なり、month は 1 月に対 して 1 を返し、year は 1998 年に対して 1998 を返します。また、 yday は 1 から数えます。

to_f -> Float

起算時からの経過秒数を浮動小数点数で返します。1 秒に満たない経過も 表現されます。

to_i -> Integer
tv_sec -> Integer

起算時からの経過秒数を整数で返します。

to_s -> String

時刻を date(1) のような形式の文字列に変換します。

self.strftime("%a %b %d %H:%M:%S %Z %Y")

と同じです。

p Time.now.to_s # => "Mon Oct 20 06:02:10 JST 2003"
tuesday? -> bool

自身の表す時刻が火曜日である場合に true を返します。 そうでない場合に false を返します。

usec -> Integer
tv_usec -> Integer

時刻のマイクロ秒の部分を整数で返します。

wday -> Integer

曜日を0(日曜日)から6(土曜日)の整数で返します。

wednesday? -> bool

自身の表す時刻が水曜日である場合に true を返します。 そうでない場合に false を返します。

yday -> Integer

1月1日を1とした通算日(1から366まで)を整数で返します。

year -> Integer

年を整数で返します。

p Time.local(2000, 1, 1).year #=> 2000
zone -> String

タイムゾーンを表す文字列を返します。

p Time.now.zone #=> "JST"

追加されるメソッド

httpdate -> String [added by time]

[RFC2616]で定義されているHTTP-dateのrfc1123-dateとして 表現される以下の形式の文字列を返します:

day-of-week, DD month-name CCYY hh:mm:ss GMT

注意: 結果はいつも UTC (GMT) です。

使用例

require 'time'

iso8601_time = '2008-08-31T12:34:56+09:00'
t = Time.iso8601(iso8601_time)
p t.httpdate     #=> "Sun, 31 Aug 2008 03:34:56 GMT"
httpdate(date) -> Time [added by time]

[RFC2616]で定義されているHTTP-dateとしてdateをパースして Timeオブジェクトに変換します。

dateが[RFC2616]に準拠していない、または Timeクラスが指定された日時を表現できないときにArgumentErrorが 発生します。

[PARAM] date:
[RFC2616]で定義されているHTTP-dateとしてパースされる文字列を指定します。
[EXCEPTION] ArgumentError:
dateが[RFC2616]に準拠していない、または Timeクラスが指定された日時を表現できないときに発生します。
require 'time'
rfc2616_time = 'Sun, 31 Aug 2008 12:34:56 GMT'

t = Time.httpdate(rfc2616_time)
p t.kind_of?(Time) #=> true

non_rfc2616_time = 'San, 31 Aug 2008 12:34:56 GMT'
begin
  Time.httpdate(non_rfc2616_time)
rescue ArgumentError => err
  puts err #=>  not RFC 2616 compliant date: "San, 31 Aug 2008 12:34:56 GMT"
end
xmlschema(fractional_seconds = 0) -> String [added by time]
iso8601(fractional_seconds = 0) -> String [added by time]

XML Schema で定義されている dateTime として 表現される以下の形式の文字列を返します:

CCYY-MM-DDThh:mm:ssTZD
CCYY-MM-DDThh:mm:ss.sssTZD

ただし TZD は Z または [+-]hh:mm です。

If self is a UTC time, Z is used as TZD. [+-]hh:mm is used otherwise.

fractional_seconds は小数点以下の秒を指定します。 fractional_seconds のデフォルト値は 0 です。

[PARAM] fractional_seconds:
小数点以下の秒の桁数を整数で指定します。 省略した場合は0 となります。

使用例

require 'time'

iso8601_time = '2008-08-31T12:34:56+09:00'
t = Time.iso8601(iso8601_time)
p t.xmlschema    #=> "2008-08-31T03:34:56Z"
p t.xmlschema(9) #=> "2008-08-31T03:34:56.000000000Z"
xmlschema(date) -> Time [added by time]
iso8601(date) -> Time [added by time]

XML Schema で定義されている dateTime として date をパースして Time オブジェクトに変換します。

date がISO 8601で定義されている形式に準拠していない、 または Time クラスが指定された日時を表現できないときに ArgumentError が発生します。

[PARAM] date:
XML Schema で定義されている dateTime として パースされる文字列を指定します。
[EXCEPTION] ArgumentError:
date がISO 8601で定義されている形式に準拠していない、 または Time クラスが指定された日時を表現できないとき に発生します。

使用例

require 'time'

iso8601_time = '2008-08-31T12:34:56+09:00'
t = Time.iso8601(iso8601_time)
p t #=> Sun Aug 31 03:34:56 UTC 2008
p t.kind_of?(Time) #=> true

begin
  non_iso8601_time = '2008-08-31A12:34:56+09:00'
  Time.iso8601(non_iso8601_time)
rescue ArgumentError => err
  puts err #=> invalid date: "2008-08-31A12:34:56+09:00"
end
parse(date, now = Time.now) -> Time [added by time]
parse(date, now = Time.now) {|year| year } -> Time [added by time]

date を Date.#_parse によって パースして Timeオブジェクトに変換します。

ブロック付きで呼ばれた場合、dateの年はブロックによって変換されます。

Time.parse(...) {|y| y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y}

与えられた時刻に上位の要素がなかったり壊れていた場合、nowの 該当要素が使われます。 下位の要素がなかったり壊れていた場合、最小値(1か0)が使われます。

[PARAM] date:
Time オブジェクトに変換可能な文字列を指定します。
[PARAM] now:
現在時刻をTime オブジェクトで指定します。 デフォルトはTime.nowとなります。
# 現在時刻が "Thu Nov 29 14:33:20 GMT 2001" で
# タイムゾーンがGMTとすると:
Time.parse("16:30")     #=> Thu Nov 29 16:30:00 GMT 2001
Time.parse("7/23")      #=> Mon Jul 23 00:00:00 GMT 2001
Time.parse("2002/1")    #=> Tue Jan 01 00:00:00 GMT 2002

Date._parseがdateから情報を取り出せないとき、 または Time クラスが指定された日時を表現できないときに ArgumentError が発生します。

このメソッドは他のパース用メソッドのフェイルセーフとして 以下のように使用できます:

Time.rfc2822(date) rescue Time.parse(date)
Time.httpdate(date) rescue Time.parse(date)
Time.xmlschema(date) rescue Time.parse(date)

従って Time.parse の失敗はチェックすべきです。

rfc2822(date) -> Time [added by time]
rfc822(date) -> Time [added by time]

[RFC2822]で定義されているdate-timeとしてdateをパースして Timeオブジェクトに変換します。 この形式は[RFC822]で定義されて[RFC1123]で更新された形式と 同じです。

dateが[RFC2822]に準拠していない、または Timeクラスが指定された日時を表現できないときにArgumentErrorが 発生します。

[PARAM] date:
[RFC2822] で定義されるdate-time として文字列を指定します。
[EXCEPTION] ArgumentError:
dateが[RFC2822]に準拠していない、または Timeクラスが指定された日時を表現できないときに 発生します。

使用例

require 'time'

rfc2822_time = 'Sun, 31 Aug 2008 12:08:19 +0900'
t = Time.rfc2822(rfc2822_time)
p t.kind_of?(Time) #=> true
non_rfc2822_time = 'Sun 31 Aug 2008 12:08:19 +0900'

begin
  p Time.rfc2822(non_rfc2822_time)
rescue ArgumentError => err
  puts "format err: #{err}"
end
rfc2822 -> String [added by time]
rfc822 -> String [added by time]

[RFC2822] で定義されている date-time として表現される 以下の形式の文字列を返します:

day-of-week, DD month-name CCYY hh:mm:ss zone

ただし zone は [+-]hhmm です。

self が UTC time の場合、zone は +0000 になります。

使用例

require 'time'

iso8601_time = '2008-08-31T12:34:56+09:00'
t = Time.iso8601(iso8601_time)
p t.rfc2822      #=> "Sun, 31 Aug 2008 03:34:56 -0000"
to_date -> Date [added by date]

対応する Date オブジェクトを返します。

to_datetime -> DateTime [added by date]

対応する DateTime オブジェクトを返します。

to_time -> Time [added by date]

対応する Time オブジェクトを返します。

Methods

Classes