class DateTime + Date + Comparable
クラスの継承リスト: DateTime < Date < Comparable < Object < Kernel
要約
日付だけでなく時刻も扱える Date のサブクラスです。
簡単なつかいかた
require 'date' a = DateTime.new(1993, 2, 24, 12, 30, 45) b = DateTime.parse('1993-02-24T12:30:45') b += 10 b - a #=> 10 b.year #=> 1993 b.strftime('%a') #=> "Sat" yesterday = DateTime.now - 1
特異メソッド
_parse(str, complete = false) -> Hash
-
このメソッドは Date.parse と似ていますが、日付オブジェクトを生成せずに、 見いだした要素をハッシュで返します。
Date.parse も参照してください。
- [PARAM] str:
- 日付をあらわす文字列
- [PARAM] complete:
- 年を補完するか
_strptime(str, format = '%FT%T%z') -> Hash
-
与えられた雛型で日時表現を解析し、その情報に基づいてハッシュを生成します。
- [PARAM] str:
- 日時をあらわす文字列
- [PARAM] format:
- 書式
例:
DateTime._strptime('2001-02-03T12:13:14Z') # => {:sec=>14, :zone=>"Z", :year=>2001, :hour=>12, :mday=>3, :min=>13, :offset=>0, :mon=>2}
DateTime.strptime の内部で使用されています。
[SEE_ALSO] Date._strptime, DateTime.strptime
_strptime(str, format = '%F') -> Hash
-
このメソッドは Date.strptime と似ていますが、日付オブジェクトを生成せずに、 見いだした要素をハッシュで返します。
- [PARAM] str:
- 日付をあらわす文字列
- [PARAM] format:
- 書式
civil(year = -4712, mon = 1, mday = 1, hour = 0, min = 0, sec = 0, offset = 0, start = Date::ITALY) -> DateTime
new(year = -4712, mon = 1, mday = 1, hour = 0, min = 0, sec = 0, offset = 0, start = Date::ITALY) -> DateTime
-
暦日付に相当する日時オブジェクトを生成します。
時差の単位は日です。 1.8.6 以降では、"+0900" のような時差をあらわす文字列もつかえます。
- [PARAM] year:
- 年
- [PARAM] mon:
- 月
- [PARAM] mday:
- 日
- [PARAM] hour:
- 時
- [PARAM] min:
- 分
- [PARAM] sec:
- 秒
- [PARAM] offset:
- 時差
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [EXCEPTION] ArgumentError:
- 正しくない日時
civil(year = -4712, mon = 1, mday = 1, start = Date::ITALY) -> Date
new(year = -4712, mon = 1, mday = 1, start = Date::ITALY) -> Date
-
暦日付に相当する日付オブジェクトを生成します。
このクラスでは、紀元前の年を天文学の流儀で勘定します。 1年の前は零年、零年の前は-1年、のようにします。 月、および月の日は負、 または正の数でなければなりません (負のときは最後からの序数)。 零であってはなりません。
最後の引数は、グレゴリオ暦をつかい始めた日をあらわすユリウス日です。 省略した場合は、Date::ITALY (1582年10月15日) になります。
Date.jd も参照してください。
- [PARAM] year:
- 年
- [PARAM] mon:
- 月
- [PARAM] mday:
- 日
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [EXCEPTION] ArgumentError:
- 正しくない日付になる組み合わせである場合に発生します。
commercial(cwyear = 1582, cweek = 41, cwday = 5, hour = 0, min = 0, sec = 0, offset = 0, start = Date::ITALY) -> DateTime
-
暦週日付に相当する日時オブジェクトを生成します。
DateTime.new も参照してください。
- [PARAM] cwyear:
- 年
- [PARAM] cweek:
- 週
- [PARAM] cwday:
- 週の日 (曜日)
- [PARAM] hour:
- 時
- [PARAM] min:
- 分
- [PARAM] sec:
- 秒
- [PARAM] offset:
- 時差
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [EXCEPTION] ArgumentError:
- 正しくない日時
commercial(cwyear = 1582, cweek = 41, cwday = 5, start = Date::ITALY) -> Date
-
暦週日付に相当する日付オブジェクトを生成します。
週、および週の日 (曜日) は負、 または正の数でなければなりません(負のときは最後からの序数)。 零であってはなりません。
このメソッドに改暦前の日付を与えることはできません。
Date.jd、および Date.new も参照してください。
- [PARAM] cwyear:
- 年
- [PARAM] cweek:
- 週
- [PARAM] cwday:
- 週の日 (曜日)
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [EXCEPTION] ArgumentError:
- 正しくない日付になる組み合わせである場合に発生します。
gregorian_leap?(year) -> bool
leap?(year) -> bool
-
グレゴリオ暦の閏年なら真を返します。
- [PARAM] year:
- 年
jd(jd = 0, hour = 0, min = 0, sec = 0, offset = 0, start = Date::ITALY) -> DateTime
-
ユリウス日に相当する日時オブジェクトを生成します。
DateTime.new も参照してください。
- [PARAM] jd:
- ユリウス日
- [PARAM] hour:
- 時
- [PARAM] min:
- 分
- [PARAM] sec:
- 秒
- [PARAM] offset:
- 時差
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [EXCEPTION] ArgumentError:
- 正しくない日時
jd(jd = 0, start = Date::ITALY) -> Date
-
ユリウス日に相当する日付オブジェクトを生成します。
このクラスのいくつかの重要なメソッドで、 負のユリウス日は保証されません。
Date.new も参照してください。
- [PARAM] jd:
- ユリウス日
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
julian_leap?(year) -> bool
-
ユリウス暦の閏年なら真を返します。
西暦4年は真になりますが、 これは歴史的には正しくありません。
- [PARAM] year:
- 年
now(start = Date::ITALY) -> DateTime
-
現在の時刻に相当する日時オブジェクトを生成します。
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
ordinal(year = -4712, yday = 1, hour = 0, min = 0, sec = 0, offset = 0, start = Date::ITALY) -> DateTime
-
年日付に相当する日時オブジェクトを生成します。
DateTime.new も参照してください。
- [PARAM] year:
- 年
- [PARAM] yday:
- 年の日
- [PARAM] hour:
- 時
- [PARAM] min:
- 分
- [PARAM] sec:
- 秒
- [PARAM] offset:
- 時差
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [EXCEPTION] ArgumentError:
- 正しくない日時
ordinal(year = -4712, yday = 1, start = Date::ITALY) -> Date
-
年間通算日 (年日付) に相当する日付オブジェクトを生成します。
年の日は負、 または正の数でなければなりません (負のときは最後からの序数)。 零であってはなりません。
Date.jd、および Date.new も参照してください。
- [PARAM] year:
- 年
- [PARAM] yday:
- 年の日
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [EXCEPTION] ArgumentError:
- 正しくない日付になる組み合わせである場合に発生します。
parse(str = '-4712-01-01T00:00:00+00:00', complete = false, start = Date::ITALY) -> DateTime
-
与えられた日時表現を解析し、 その情報に基づいて DateTime オブジェクトを生成します。
complete が真で、年が "00" から "99" の範囲であれば、 年の下2桁表現であるとみなしこれを補います。 なお、省略した場合は、偽とみなします。
- [PARAM] str:
- 日時をあらわす文字列
- [PARAM] complete:
- 年を補完するか
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [EXCEPTION] ArgumentError:
- 正しくない日時になる組み合わせである場合に発生します。
例:
DateTime.parse('2001-02-03T12:13:14Z').to_s # => "2001-02-03T12:13:14+00:00"
[SEE_ALSO] Date._parse, Date.parse
parse(str = '-4712-01-01', complete = false, start = Date::ITALY) -> Date
-
与えられた日付表現を解析し、 その情報に基づいて日付オブジェクトを生成します。
complete が真で、年が "00" から "99" の範囲であれば、 年の下2桁表現であるとみなしこれを補います。 なお、省略した場合は、偽とみなします。
Date._parse も参照してください。
- [PARAM] str:
- 日付をあらわす文字列
- [PARAM] complete:
- 年を補完するか
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [EXCEPTION] ArgumentError:
- 正しくない日付になる組み合わせである場合に発生します。
strptime(str = '-4712-01-01T00:00:00+00:00', format = '%FT%T%z', start = Date::ITALY) -> DateTime
-
与えられた雛型で日時表現を解析し、 その情報に基づいて DateTime オブジェクトを生成します。
- [PARAM] str:
- 日時をあらわす文字列
- [PARAM] format:
- 書式
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [EXCEPTION] ArgumentError:
- 正しくない日時になる組み合わせである場合に発生します。
例:
DateTime.strptime('2001-02-03T12:13:14Z').to_s # => "2001-02-03T12:13:14+00:00"
[SEE_ALSO] Date.strptime, DateTime._strptime, strptime(3), Date#strftime
strptime(str = '-4712-01-01', format = '%F', start = Date::ITALY) -> Date
-
与えられた雛型で日付表現を解析し、 その情報に基づいて日付オブジェクトを生成します。
Date._strptime も参照してください。 また strptime(3)、および Date#strftime も参照してください。
- [PARAM] str:
- 日付をあらわす文字列
- [PARAM] format:
- 書式
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [EXCEPTION] ArgumentError:
- 正しくない日付になる組み合わせである場合に発生します。
today(start = Date::ITALY) -> Date
-
このクラスでは利用できません。
DateTime.now を参照してください。
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
today(start = Date::ITALY) -> Date
-
現在の日付に相当する日付オブジェクトを生成します。
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
valid_civil?(year, mon, mday, start = Date::GREGORIAN) -> Numeric | nil
valid_date?(year, mon, mday, start = Date::GREGORIAN) -> Numeric | nil
-
正しい暦日付であれば、相当するユリウス日を返します。 そうでないなら、偽を返します。
Date.jd、および Date.civil も参照してください。
- [PARAM] year:
- 年
- [PARAM] mon:
- 月
- [PARAM] mday:
- 日
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
valid_commercial?(cwyear, cweek, cwday, start = Date::GREGORIAN) -> Numeric | nil
-
正しい暦週日付であれば、相当するユリウス日を返します。 そうでないなら、偽を返します。
Date.jd、および Date.commercial も参照してください。
- [PARAM] cwyear:
- 年
- [PARAM] cweek:
- 週
- [PARAM] cwday:
- 週の日 (曜日)
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
valid_jd?(jd, start = Date::GREGORIAN) -> Numeric | nil
-
ひとつ目の引数をそのまま返します。
対称性のため用意されていますが、実際的に意味はありません。
Date.jd も参照してください。
- [PARAM] jd:
- ユリウス日
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
valid_ordinal?(year, yday, start = Date::GREGORIAN) -> Numeric | nil
-
正しい年間通算日 (年日付) であれば、相当するユリウス日を返します。 そうでないなら、偽を返します。
Date.jd、および Date.ordinal も参照してください。
- [PARAM] year:
- 年
- [PARAM] yday:
- 年の日
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
インスタンスメソッド
self + n -> Date
-
self から n 日後の日付オブジェクトを返します。 n は数値でなければなりません。
- [PARAM] n:
- 日数
- [EXCEPTION] TypeError:
- n が数値でない場合に発生します。
self - x -> Rational | Date
-
x が日付オブジェクトなら、ふたつの差を返します。 あるいは x が数値ならば、self より x 日前の日付を返します。
- [PARAM] x:
- 日数、あるいは日付オブジェクト
- [EXCEPTION] TypeError:
- x が数値でも日付オブジェクトでもない場合に発生します。
self < other -> bool
-
比較演算子 <=> をもとにオブジェクト同士を比較します。 <=> が負の整数を返した場合に、true を返します。 それ以外の整数を返した場合に、false を返します。
- [PARAM] other:
- 自身と比較したいオブジェクトを指定します。
- [EXCEPTION] ArgumentError:
- <=> が nil を返したときに発生します。
self << n -> Date
-
self より n ヶ月前の日付オブジェクトを返します。 n は数値でなければなりません。
- [PARAM] n:
- 月数
self <= other -> bool
-
比較演算子 <=> をもとにオブジェクト同士を比較します。 <=> が負の整数か 0 を返した場合に、true を返します。 それ以外の整数を返した場合に、false を返します。
- [PARAM] other:
- 自身と比較したいオブジェクトを指定します。
- [EXCEPTION] ArgumentError:
- <=> が nil を返したときに発生します。
self <=> other -> Integer
-
ふたつを比較し、-1、零、あるいは 1 を返します。 other は日付オブジェクトか、 天文学的なユリウス日をあらわす数値でなければなりません。
- [PARAM] other:
- 日付オブジェクト
self == other -> bool | nil
-
比較演算子 <=> をもとにオブジェクト同士を比較します。 <=> が 0 を返した時に、true を返します。 それ以外を返した場合は、false を返します。
<=> が nil を返した場合は、 nil を返します。
- [PARAM] other:
- 自身と比較したいオブジェクトを指定します。
self === other -> bool
-
同じ日なら真を返します。
- [PARAM] other:
- 日付オブジェクト
self > other -> bool
-
比較演算子 <=> をもとにオブジェクト同士を比較します。 <=> が正の整数を返した場合に、true を返します。 それ以外の整数を返した場合に、false を返します。
- [PARAM] other:
- 自身と比較したいオブジェクトを指定します。
- [EXCEPTION] ArgumentError:
- <=> が nil を返したときに発生します。
self >= other -> bool
-
比較演算子 <=> をもとにオブジェクト同士を比較します。 <=> が正の整数か 0 を返した場合に、true を返します。 それ以外の整数を返した場合に、false を返します。
- [PARAM] other:
- 自身と比較したいオブジェクトを指定します。
- [EXCEPTION] ArgumentError:
- <=> が nil を返したときに発生します。
self >> n -> Date
-
self から n ヶ月後の日付オブジェクトを返します。 n は数値でなければなりません。
- [PARAM] n:
- 月数
ajd -> Rational
-
このメソッドは Date#jd と似ていますが、天文学的なユリウス日を返します。 時刻を含みます。
amjd -> Rational
-
このメソッドは Date#mjd と似ていますが、天文学的な修正ユリウス日を返します。 時刻を含みます。
asctime -> String
ctime -> String
-
asctime(3) 書式の文字列を返します (ただし、末尾の "\n\0" は除く)。
between?(min, max) -> bool
-
比較演算子 <=> をもとに self が min と max の範囲内(min, max を含みます)にあるかを判断します。
以下のコードと同じです。
self >= min and self <= max
- [PARAM] min:
- 範囲の下端を表すオブジェクトを指定します。
- [PARAM] max:
- 範囲の上端を表すオブジェクトを指定します。
- [EXCEPTION] ArgumentError:
- self <=> min か、self <=> max が nil を返 したときに発生します。
3.between?(1, 5) #=> true 6.between?(1, 5) #=> false 'cat'.between?('ant', 'dog') #=> true 'gnu'.between?('ant', 'dog') #=> false
cwday -> Integer
-
暦週の日 (曜日) を返します (1-7、月曜は1)。
cweek -> Integer
-
暦週を返します (1-53)。
cwyear -> Integer
-
暦週における年を返します。
mday -> Integer
day -> Integer
-
月の日を返します (1-31)。
downto(min) {|date| ...} -> self
-
このメソッドは、step(min, -1){|date| ...} と等価です。
- [PARAM] min:
- 日付オブジェクト
england -> Date
-
このメソッドは、new_start(Date::ENGLAND) と等価です。
Date#new_start、および Date::ENGLAND を参照してください。
gregorian -> Date
-
このメソッドは、new_start(Date::GREGORIAN) と等価です。
Date#new_start、および Date::GREGORIAN を参照してください。
gregorian? -> bool
-
グレゴリオ暦なら真を返します。
hour -> Integer
-
時間を返します (0-23)。
- [PARAM] n:
- 小数点以下の桁数
- [PARAM] n:
- 小数点以下の桁数
italy -> Date
-
このメソッドは、new_start(Date::ITALY) と等価です。
Date#new_start、および Date::ITALY を参照してください。
jd -> Integer
-
ユリウス日を返します。 時刻を含みません。
Date#ajd も参照してください。
julian -> Date
-
このメソッドは、new_start(Date::JULIAN) と等価です。
Date#new_start、および Date::JULIAN を参照してください。
julian? -> bool
-
ユリウス暦なら真を返します。
ld -> Integer
-
リリウス日を返します。
leap? -> bool
-
閏年なら真を返します。
min -> Integer
-
分を返します (0-59)。
mjd -> Integer
-
修正ユリウス日を返します。 時刻の情報を含みません。
Date#amjd も参照してください。
mon -> Integer
month -> Integer
-
月を返します (1-12)。
new_offset(offset = 0) -> DateTime
-
self を複製して、その時差を設定しなおします。 引数を省略した場合は、零 (協定世界時) になります。
DateTime.new も参照してください。
- [PARAM] offset:
- 時差
new_start(start = Date::ITALY) -> Date
-
self を複製して、その改暦日を設定しなおします。 引数を省略した場合は、Date::ITALY (1582年10月15日) になります。
Date.new も参照してください。
- [PARAM] start:
- グレゴリオ暦をつかい始めた日をあらわすユリウス日
- [PARAM] n:
- 年数
succ -> Date
next -> Date
-
翌日の日付オブジェクトを返します。
offset -> Rational
-
時差を返します。
sec -> Integer
-
秒を返します (0-59)。
start -> Integer
-
改暦日をあらわすユリウス日を返します。
Date.new も参照してください。
step(limit, step = 1) {|date| ...} -> self
-
ブロックの評価を繰り返します。ブロックは日付オブジェクトをとります。 limit は日付オブジェクトでなければなりません、 また step は非零でなければなりません。
- [PARAM] limit:
- 日付オブジェクト
- [PARAM] step:
- 歩幅
[SEE_ALSO] Date#downto, Date#upto
strftime(format = '%F') -> String
-
与えられた雛型で日付を書式づけます。
つぎの変換仕様をあつかいます:
%A, %a, %B, %b, %C, %c, %D, %d, %e, %F, %G, %g, %H, %h, %I, %j, %k, %l, %M, %m, %n, %P, %p, %R, %r, %S, %s, %T, %t, %U, %u, %V, %v, %W, %w, %X, %x, %Y, %y, %Z, %z, %%, %+
1.8.6 以降では、%L, %N, %Q もつかえます。 また、GNU 版にあるような幅指定などもできます。
strftime(3)、および Date.strptime も参照してください。
- [PARAM] format:
- 書式
to_s -> String
-
[[ISO:8601]] 書式の文字列を返します (拡大表記はつかいません)。
upto(max) {|date| ...} -> self
-
このメソッドは、step(max, 1){|date| ...} と等価です。
- [PARAM] max:
- 日付オブジェクト
[SEE_ALSO] Date#step, Date#downto
wday -> Integer
-
曜日を返します (0-6、日曜日は零)。
yday -> Integer
-
年の日を返します (1-366)。
year -> Integer
-
年を返します。
zone -> String
-
タイムゾーンを返します。
これは、正確には時差をあらわす文字列です。
定数
ENGLAND -> Integer
-
英国がグレゴリオ暦をつかい始めた日 (1752年9月14日) をあらわすユリウス日です。 この "ENGLAND" の名前は、旧い UNIX の cal(1) の記述に由来します。
[SEE_ALSO] http://www.cs.bell-labs.com/who/dmr/man61.pdf
ちなみに、本実装で英国の改暦日を尊重する姿勢がみられるのは前実装からの影響です。 前実装が英国の改暦日を尊重していたのは、おそらく cal(1) の影響です。 もっとも本実装で一番に尊重されているのは、伊国の改暦日であり、多くの場合、 改暦日の既定値は Date::ITALY です。
GREGORIAN -> Date::Infinity
-
常にグレゴリオ暦であることを示します。 改暦日は無限の過去にあると考えられます。
ITALY -> Integer
-
伊国がグレゴリオ暦をつかい始めた日 (1582年10月15日) をあらわすユリウス日です。
JULIAN -> Date::Infinity
-
常にユリウス暦であることを示します。 改暦日は無限の未来にあると考えられます。