Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】DateTime::new_offset()メソッドの使い方

new_offsetメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

new_offsetメソッドは、DateTimeオブジェクトが保持しているタイムゾーンオフセット、すなわちUTC(協定世界時)からの時差を変更し、その結果として新しいDateTimeオブジェクトを生成するメソッドです。

DateTimeオブジェクトは、特定の日付と時刻の情報に加え、その日時がどのタイムゾーンに属するかを示す時差情報(オフセット)を持っています。このnew_offsetメソッドを使用すると、元のDateTimeオブジェクトの日付と時刻自体はそのまま維持しながら、指定した値にオフセットだけを変更した新たなDateTimeオブジェクトを取得できます。

例えば、日本のタイムゾーン(UTCからのオフセットが+9時間)を持つDateTimeオブジェクトに対して、new_offsetメソッドでUTCのオフセット(0時間)を指定すると、元のDateTimeオブジェクトが指す瞬間は変わらずに、UTCでの時刻を表す新しいDateTimeオブジェクトが返されます。これにより、異なるタイムゾーンにおける同じ瞬間の時刻表現を簡単に作成できます。引数には、新しいオフセットの値を数値(有理数)や時間間隔で指定します。このメソッドは、呼び出し元のDateTimeオブジェクトの内容を直接変更するわけではなく、常に新しいオブジェクトを返すため、元のデータを安全に保ちながら操作することが可能です。

構文(syntax)

1require 'date'
2
3original_datetime = DateTime.new(2023, 1, 1, 12, 0, 0, 0)
4new_datetime = original_datetime.new_offset(Rational(9, 24))

引数(parameters)

offset = self.offset

  • offset: オフセットを指定する数値。デフォルトは現在のオフセット。

戻り値(return)

DateTime

指定されたタイムゾーンオフセットを持つ新しい DateTime オブジェクトを返します。

関連コンテンツ