【Ruby3.x】DateTime::new()メソッドの使い方
newメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
newメソッドは、指定された日時情報を持つ新しいDateTimeオブジェクトを生成するメソッドです。このメソッドは、年、月、日、時、分、秒、タイムゾーンのオフセット、そして必要に応じてユリウス日として解釈するかどうかを示す複数の引数を受け取ります。
引数を省略した場合、年、月、日には実行時のシステム日時がデフォルトとして適用され、時、分、秒は通常0に設定されます。特に重要なのがタイムゾーンのオフセットで、これを省略するとデフォルトで0(UTC、協定世界時)と解釈されます。異なるタイムゾーンの日時を扱う際には、このオフセットを正確に指定する必要があります。
DateTimeオブジェクトは、単なる日付や時刻の数値情報だけでなく、その日時がどのタイムゾーンに基づいているかというオフセット情報も内部に保持します。これにより、世界各地の異なるタイムゾーンにおける特定の日時を正確に表現し、時間計算を適切に行うことが可能になります。
また、最後のsg引数にtrueを指定すると、年、月、日の引数をグレゴリオ暦ではなくユリウス日として解釈し、紀元前から続く古い日付を扱う際に利用できます。システム開発において、日時情報の正確な扱いは非常に重要であるため、このnewメソッドの働きと引数の意味を理解することは、堅牢なシステムを構築するための基礎となります。
構文(syntax)
1DateTime.new(2023, 1, 15, 10, 30, 45, '+09:00')
引数(parameters)
year = -4712, mon = 1, mday = 1, hour = 0, min = 0, sec = 0, offset = 0, sg = Date::GREGORIAN, start = Date::ITALIAN
- year: 年を指定する整数(デフォルトは紀元前4712年)
- mon: 月を指定する整数(デフォルトは1月)
- mday: 日を指定する整数(デフォルトは1日)
- hour: 時を指定する整数(デフォルトは0時)
- min: 分を指定する整数(デフォルトは0分)
- sec: 秒を指定する整数(デフォルトは0秒)
- offset: タイムゾーンオフセットを秒単位で指定する整数(デフォルトは0)
- sg: 使用する暦を指定します (デフォルトはDate::GREGORIAN (グレゴリオ暦))
- start: 週の開始日を指定します (デフォルトはDate::ITALIAN (月曜日))
戻り値(return)
DateTime
指定された年月日時分秒から、新しいDateTimeオブジェクトを生成します。