type=class
superclass=Object
included=Comparable
extended=
dynamically_included=
dynamically_extended=
library=_builtin
aliases=
aliasof=

時刻を表すクラスです。

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

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

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

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

また、Time オブジェクトは協定世界時と地方時のどちらのタイムゾー
ンを使用するかのフラグを内部に保持しています。
ただし、この情報は
[[m:Marshal.#dump]] では保存されず、[[m:Marshal.#load]]
で読み込んだ Time オブジェクトのタイムゾーンは常に地方時になりま
す。

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


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

[[man:localtime(3)]] も参照しください。

=== C 言語との違いに注意

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