DateTimeクラス

広告

日付及び時刻を扱うDateTimeクラスについて見ていきます。

DateTimeクラスはDateクラスのサブクラスとなっています。Dateクラスが組み込みクラスとはなっていない為、DateTimeクラスを使うにはまずプログラムファイルの中で次の一文を記述する必要があります。

require "date"

DateTimeクラスのオブジェクトを作成するには「new」メソッドを使います。

Date.new([year[, mon[, mday[, hour[, min[, sec[, offset[, start]]]]]]]])

暦日付に基づくDateTimeクラスのオブジェクトを作成します。引数は順に年、月、日、時、分、秒、オフセット(時差)となっています。月は1から12、日は1から31、時は0から23、分は0から59、秒は0から59の範囲で指定します。

オフセットは協定世界時との時差を指定します。指定する数値の単位は日となっているため、日本の時差である9時間を表すには[9/24」日、すなわち「0.375」を指定します。オフセットを細かく設定出来る点がTimeクラスとDateTimeクラスの大きな違いとなります。

なお最後の引数はグレゴリオ暦をつかい始めた日をあらわすユリウス日を指定します。省略した場合は「ITALY (1582年10月15日)」が設定されますが取り合えず気にしないでいいかと思います。

実際の使い方は次のようになります。

require "date"

d = DateTime.new(2007, 5 ,30, 16, 20, 45, 0.375)

上記の場合は「2007年5月30日16時20分45秒」と言う日付と時刻を表すDateTimeクラスのオブジェクトを作成します。

現在の日付のDateTimeオブジェクト作成する

年月日を指定してオブジェクトを作成する代わりに現在の日付と時刻を元にしたDateTimeクラスのオブジェクトを作成することが出来ます。DateTimeクラスで用意されている「now」メソッドを使います。

DateTime.now([start])

引数は「new」メソッドの最後の引数と同じくグレゴリオ暦をつかい始めた日をあらわすユリウス日を指定します。

実際の使い方は次のようになります。

require "date"

dn = DateTime.now

サンプルプログラム

では簡単なサンプルで試してみます。

LibraryDate6.rb

#! ruby -Ks

require "date"

d = DateTime.new(2007, 2 ,4, 16, 20, 45, 0.375)
print(d, "¥n")

tn = DateTime.now
print(tn)

実行結果は次のようになります。

DateTimeクラスのオブジェクトを作成する

( Written by Tatsuo Ikura )