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

DateTime クラスは Date クラスのサブクラスで日付と時刻を両方扱うことができます。ここでは Ruby で DateTime クラスのオブジェクトを作成する方法について解説します。

※ Ruby 3.0 から DateTime クラスは非推奨となっています。時刻に関する情報を扱う場合は Time クラスを使用されてください。 Time クラスについて詳しくは「時刻(Time)クラス」を参照されてください。

(Last modified: )

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

DateTime クラスは組み込みクラスではないため、プログラムの中で DateTime クラスを使用する場合はソースコードのファイルの中に require "date" を記述する必要があります。

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 を指定します。

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

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

require "date"

d = DateTime.new(2022, 10, 17, 16, 20, 45, 0.375)

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

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

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

DateTime.now([start])

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

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

require "date"

dn = DateTime.now

現在の日時の情報を持つ DateTime クラスのオブジェクトが作成されました。

サンプルコード

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

# encoding: UTF-8

require "date"

dt = DateTime.new(2021, 3, 25, 9, 17, 30, 0.375)
puts(dt)

dn = DateTime.now
puts(dn)

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

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

-- --

Ruby で DateTime クラスのオブジェクトを作成する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。