【Ruby3.x】DateTime::civil()メソッドの使い方
civilメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
civilメソッドは、DateTimeクラスのクラスメソッドで、指定された日付と時刻情報に基づいて新しいDateTimeオブジェクトを生成します。このメソッドは、年、月、日、時、分、秒、オフセット、そしてユリウス通日からの開始日を表すsg(グレゴリオ暦への移行日からの日数)を引数として受け取ります。
各引数にはデフォルト値が設定されており、月と日には1、時、分、秒には0がそれぞれ適用されます。オフセットは、UTCからの時間差をRationalオブジェクトや文字列で指定でき、デフォルトは0(UTC)です。sgのデフォルト値は2299161であり、これはグレゴリオ暦の開始日である1582年10月15日を表します。
civilメソッドを使用することで、日付や時刻の各要素を明確に指定して、目的に合ったDateTimeオブジェクトを柔軟に構築できます。例えば、DateTime.civil(2023, 1, 1, 12, 30, 0, '+09:00')のように記述することで、2023年1月1日12時30分0秒、日本標準時(UTC+9時間)のDateTimeオブジェクトを作成できます。日付と時刻の要素を個別に設定してオブジェクトを生成したい場合に、このメソッドは非常に役立ちます。
構文(syntax)
1require 'date' 2 3DateTime.civil(2023, 10, 27, 10, 30)
引数(parameters)
year = -4712, month = 1, mday = 1, hour = 0, min = 0, sec = 0, offset = 0, start = Date::GREGORIAN
- year = -4712: 年を指定する整数。デフォルトは紀元前4712年。
- month = 1: 月を指定する整数。デフォルトは1月。
- mday = 1: 日を指定する整数。デフォルトは1日。
- hour = 0: 時を指定する整数。デフォルトは0時。
- min = 0: 分を指定する整数。デフォルトは0分。
- sec = 0: 秒を指定する整数。デフォルトは0秒。
- offset = 0: タイムゾーンオフセットを指定する整数。デフォルトは0。
- start = Date::GREGORIAN: 使用する暦の種類を指定する定数。デフォルトはグレゴリオ暦。
戻り値(return)
DateTime
DateTimeオブジェクトの年、月、日をそれぞれ整数で返します。