タイムゾーン付き Java の LocalDate atStartOfDay メソッド

JavaBeginner
オンラインで実践に進む

はじめに

Java のatStartOfDay(ZoneId)メソッドは、タイムゾーンに基づいて開始時刻(真夜中の時刻)を指定された日付と組み合わせるために使用されます。このメソッドは、ローカル日時ではなくタイムゾーン付きの日時を返します。この実験では、Java でタイムゾーン付きでatStartOfDay()メソッドを使用する方法を学びます。

Java ファイルを作成する

まず、~/projectディレクトリに移動し、以下のコマンドを使用してLocalDateStartOfDay.javaという名前の新しい Java ファイルを作成します。

cd ~/project
touch LocalDateStartOfDay.java

次に、好きなテキストエディタでLocalDateStartOfDay.javaファイルを開きます。

必要なパッケージをインポートする

このステップでは、LocalDateMonthZoneId、および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 プログラムをコンパイルして実行する

このステップでは、ターミナルで以下のコマンドを使用して 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)メソッドを使用して、開始時刻をタイムゾーンに基づいて指定された日付と結合し、指定された日付の開始時刻付きのタイムゾーン付きの日時を取得する方法を学びました。また、指定された日付の開始時刻付きのタイムゾーン付きの日時とシステムの既定のタイムゾーンを取得する方法も学びました。