ホームページ  >  記事  >  Java  >  Java 11 の新しい OffsetDateTime クラスと ZoneOffset クラスを使用して、オフセットのある日付と時刻を処理します

Java 11 の新しい OffsetDateTime クラスと ZoneOffset クラスを使用して、オフセットのある日付と時刻を処理します

王林
王林オリジナル
2023-07-31 18:17:301053ブラウズ

Java 11 の新しい OffsetDateTime クラスと ZoneOffset クラスを使用して、オフセットのある日付と時刻を処理します。

はじめに:
Java 11 では、オフセットのある日付を処理する新しい OffsetDateTime クラスと ZoneOffset クラスを導入します。タイムゾーンオフセットの時刻。これらのクラスは柔軟性と機能性を高め、開発者がさまざまなタイム ゾーンの日付と時刻をより適切に処理できるようにします。

  1. OffsetDateTime クラスの概要
    OffsetDateTime クラスは、Java 8 で導入された日付と時刻 API の一部です。これは、タイム ゾーン オフセットのある日付と時刻を表します。これには、日付、時刻、タイムゾーンオフセット情報が含まれます。 OffsetDateTime クラスは不変であり、インスタンスは静的ファクトリ メソッド of() を通じて作成できます。例:
OffsetDateTime offsetDateTime = OffsetDateTime.of(2022, 1, 1, 12, 0, 0, 0, ZoneOffset.ofHours(8));

上記のコードでは、2022 年 1 月 1 日 12: OffsetDateTime を表すインスタンスを作成します。 00:00 のインスタンス、および 8 時間のタイム ゾーン オフセットが指定されます。

OffsetDateTime クラスは、日付、時刻、およびタイム ゾーン オフセットのさまざまな部分を取得および操作するための一連のメソッドを提供します。たとえば、get Year()、getMonth()、getDayOfMonth() などのメソッドを使用して、日付の年、月、日を取得できます。

int year = offsetDateTime.getYear();
Month month = offsetDateTime.getMonth();
int dayOfMonth = offsetDateTime.getDayOfMonth();
  1. ZoneOffset クラスの概要
    ZoneOffset クラスは Java 8 で Date and Time API の一部として導入されたもので、固定時間間隔で表されるタイム ゾーン オフセットを表します。オフセットは協定世界時 (UTC) を基準にしており、時間単位で測定されます。 ZoneOffset クラスは不変であり、インスタンスは静的ファクトリ メソッド ofHours() または ofTotalSeconds() を通じて作成できます。例:
ZoneOffset zoneOffset = ZoneOffset.ofHours(8);
ZoneOffset zoneOffset = ZoneOffset.ofTotalSeconds(28800);

上記のコードでは、8 時間のタイム ゾーンを作成しました。それぞれ、offset と 28800 秒のタイム ゾーン オフセットを持つ ZoneOffset インスタンスです。

ZoneOffset クラスは、オフセットのさまざまな部分を取得および操作するための一連のメソッドを提供します。たとえば、getTotalSeconds() メソッドを使用して、オフセットの合計秒数を取得できます。

int totalSeconds = zoneOffset.getTotalSeconds();
  1. サンプル コード
    次のサンプル コードは、OffsetDateTime クラスの使用方法と、 ZoneOffset クラス タイム ゾーン オフセットを使用した日付と時刻の処理:
import java.time.OffsetDateTime;
import java.time.Month;
import java.time.ZoneOffset;

public class DateTimeExample {
    public static void main(String[] args) {
        OffsetDateTime offsetDateTime = OffsetDateTime.of(2022, 1, 1, 12, 0, 0, 0, ZoneOffset.ofHours(8));
        
        int year = offsetDateTime.getYear();
        Month month = offsetDateTime.getMonth();
        int dayOfMonth = offsetDateTime.getDayOfMonth();
        int hour = offsetDateTime.getHour();
        int minute = offsetDateTime.getMinute();
        int second = offsetDateTime.getSecond();
        
        System.out.println("Year: " + year);
        System.out.println("Month: " + month);
        System.out.println("Day of Month: " + dayOfMonth);
        System.out.println("Hour: " + hour);
        System.out.println("Minute: " + minute);
        System.out.println("Second: " + second);
        
        ZoneOffset zoneOffset = ZoneOffset.ofHours(8);
        int totalSeconds = zoneOffset.getTotalSeconds();
        
        System.out.println("Total Seconds: " + totalSeconds);
    }
}

出力結果:

Year: 2022
Month: JANUARY
Day of Month: 1
Hour: 12
Minute: 0
Second: 0
Total Seconds: 28800

上記のコード例では、まず 2022 年 1 月 1 日 12 の表現を作成します。 OffsetDateTime インスタンスを 00:00 に取得し、さまざまな部分 (年、月、日、時、分、秒) を取得します。次に、8 時間のタイム ゾーン オフセットを表す ZoneOffset インスタンスを作成し、オフセットの合計秒数を取得しました。

結論:
Java 11 で OffsetDateTime クラスと ZoneOffset クラスを使用すると、タイム ゾーン オフセットを含む日付と時刻をより適切に処理できます。これらのクラスは、開発者が日付、時刻、タイム ゾーン オフセットのさまざまな部分を簡単に取得して操作できるようにする豊富な関数とメソッドのセットを提供します。開発者はこれらのクラスを使用して、実際のニーズに応じてさまざまなタイムゾーンの日付と時刻を処理し、コードの可読性と保守性を向上させることができます。

以上がJava 11 の新しい OffsetDateTime クラスと ZoneOffset クラスを使用して、オフセットのある日付と時刻を処理しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。