はじめに
Java のatStartOfDay(ZoneId)メソッドは、タイムゾーンに基づいて開始時刻(真夜中の時刻)を指定された日付と組み合わせるために使用されます。このメソッドは、ローカル日時ではなくタイムゾーン付きの日時を返します。この実験では、Java でタイムゾーン付きでatStartOfDay()メソッドを使用する方法を学びます。
Java のatStartOfDay(ZoneId)メソッドは、タイムゾーンに基づいて開始時刻(真夜中の時刻)を指定された日付と組み合わせるために使用されます。このメソッドは、ローカル日時ではなくタイムゾーン付きの日時を返します。この実験では、Java でタイムゾーン付きでatStartOfDay()メソッドを使用する方法を学びます。
まず、~/projectディレクトリに移動し、以下のコマンドを使用してLocalDateStartOfDay.javaという名前の新しい Java ファイルを作成します。
cd ~/project
touch LocalDateStartOfDay.java
次に、好きなテキストエディタでLocalDateStartOfDay.javaファイルを開きます。
このステップでは、LocalDate、Month、ZoneId、およびZonedDateTimeクラスを使用するために必要なパッケージをインポートします。
import java.time.LocalDate;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZonedDateTime;
このステップでは、指定された日付でLocalDateオブジェクトを作成し、次にatStartOfDay()メソッドを使用して、この日付から特定のタイムゾーンでタイムゾーン付きの日時を取得します。
// 日付を取得する
LocalDate localDate = LocalDate.of(2022, Month.APRIL, 15);
// 日付の開始時刻を取得する
ZonedDateTime localDateTime = localDate.atStartOfDay(ZoneId.of("Asia/Kolkata"));
// 日付の開始時の日付と時刻を表示する
System.out.println("Date with start time: \n"+localDateTime);
このステップでは、atStartOfDay()メソッドとZoneId.systemDefault()メソッドを使用して、システムの既定のタイムゾーンで指定された日付からタイムゾーン付きの日時を取得します。
// システム既定のタイムゾーンで日付の開始時刻を取得する
ZonedDateTime localDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
// 日付の開始時の日付と時刻を表示する
System.out.println("Date with start time: \n"+localDateTime);
このステップでは、ターミナルで以下のコマンドを使用して Java プログラムをコンパイルして実行します。
javac LocalDateStartOfDay.java && java LocalDateStartOfDay
出力は以下のようになり、指定されたタイムゾーンの開始時刻付きの日付が表示されます。
Date with start time:
2022-04-15T00:00+05:30[Asia/Kolkata]
Date with start time:
2022-04-15T00:00+02:00[Europe/Paris]
この実験では、Java のatStartOfDay(ZoneId)メソッドを使用して、開始時刻をタイムゾーンに基づいて指定された日付と結合し、指定された日付の開始時刻付きのタイムゾーン付きの日時を取得する方法を学びました。また、指定された日付の開始時刻付きのタイムゾーン付きの日時とシステムの既定のタイムゾーンを取得する方法も学びました。