ZonedDateTime と OffsetDateTime はどちらも Java 8 DateTime API で非常に人気のあるクラスであり、どちらもナノ秒の精度の瞬間をタイムラインに保存できます。それでは、それらの間に違いはあるのでしょうか?以下の記事では、ZonedDateTime と OffsetDateTime の違いについて説明しますので、皆様のお役に立てれば幸いです。 [ビデオチュートリアルの推奨: JavaTutorial]
ZonedDateTime とは何ですか?
ZonedDateTime は、ISO-8601 カレンダー システムのタイム ゾーンを使用した日付/時刻の不変表現です (例: 2007-12-03T10:15:30 01:00 Europe/パリ)。これは、localdatetime、zoneid、および解決されたzoneoffsetという 3 つの個別のオブジェクトに相当するものを保持します。
ここで、ZoneID はオフセットがいつどのように変更されるかを決定します。したがって、どのオフセットが有効であるかはゾーンによって制御されるため、オフセットを自由に設定することはできません。
特定のゾーンの現在の ZonedDateTime を取得するには、次を使用します。
ZoneId zone = ZoneId.of("Europe/Berlin"); ZonedDateTime zonedDateTime = ZonedDateTime.now(zone);
ZonedDateTime クラスには、特定の日付をあるタイム ゾーンから別のタイム ゾーンに変換するための組み込みメソッドも提供されます。
ZonedDateTime destZonedDateTime = sourceZonedDateTime.withZoneSameInstant(destZoneId);
最後に、DST を完全に理解し、夏時間の調整を処理します。これは、日時フィールドを特定のタイムゾーンで表示したい場合に便利です。
OffsetDateTime とは何ですか?
OffsetDateTime は、ISO-8601 カレンダー システムの UTC/グリニッジ時間で存在する日時の不変表現です (2007-12-03T10:15:30 01: など)。 00) オフセット。つまり、すべての日付と時刻のフィールドがナノ秒まで正確で、GMT/UTC からのオフセットで保存されます。
GMT/UTC から 2 時間オフセットした現在の OffsetDateTime を取得しましょう:
ZoneOffset zoneOffSet= ZoneOffset.of("+02:00"); OffsetDateTime offsetDateTime = OffsetDateTime.now(zoneOffSet);
ZonedDateTime と OffsetDateTime の違い
ZonedDateTime:
● 曖昧なローカル日付と時刻を処理するために、すべての日付と時刻のフィールドをナノ秒の精度、タイム ゾーン、およびゾーン オフセットで保存します。
● 不可能ですゾーンによって実効オフセット値が制御されるため、オフセットを自由に設定できます。
● DST を完全にサポートし、夏時間調整を処理します。
● ユーザー フィールドに日付と時刻のフィールドを表示すると非常に便利です。特定のタイム ゾーン
OffsetDateTime:
#● すべての日付と時刻フィールドをナノ秒の精度で、GMT/UTC からのオフセットで保存します (タイム ゾーン情報なし) ● データベースに日付を保存するか、ネットワークを介して通信するために使用する必要があります 上記がこの記事の全内容です。皆さんの学習に役立つことを願っています。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !以上がZonedDateTime と OffsetDateTime の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。