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)
実行結果は次のようになります。
-- --
Ruby で DateTime クラスのオブジェクトを作成する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。