Java LocalDateクラスは不変です。つまり、インスタンスが作成されると、それを変更することはできません。LocalDate には、日、月、年を加算または減算したり、曜日を取得したり、日付が別の日付の前か後かを確認したりするなど、日付を操作およびクエリするための便利なメソッドが多数用意されています。
LocalDate の例
現在の日付の LocalDateインスタンスを作成し、それをコンソールに出力する簡単な例から始めましょう。import java.time.LocalDate;
public class LocalDateExample {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("Today's date: " + today);
}
}
この例では、 java.timeパッケージからLocalDateクラス をインポートし、静的なnow()メソッドを使用してtodayというLocalDateの新しいインスタンスを作成します。このメソッドは、デフォルトのタイムゾーンのシステムクロックに基づいて現在の日付を表すLocalDateオブジェクトを返します。次に、 System.outオブジェクトのprintln()メソッドを使用して、現在の日付をコンソールに出力します。出力は次のようになります。
出力
今日の日付: 2023-05-01
LocalDate コンストラクター
Now()メソッドの他に、LocalDateには、さまざまなソースからLocalDateインスタンスを作成できるようにする他のコンストラクターがいくつか用意されています。たとえば、特定の年、月、日から LocalDateを作成できます。import java.time.LocalDate;
public class LocalDateConstructorExample {
public static void main(String[] args) {
LocalDate date1 = LocalDate.of(2023, 5, 1);
System.out.println("Date 1: " + date1);
}
}
このコードは、年 2023、月が 5 月 (値 5 で表される)、日が 1 の date1という名前の 新しいLocalDateインスタンスを作成します。出力は次のようになります。
出力
日付 1: 2023-05-01
LocalDate の操作
LocalDateの最も便利な機能の 1 つは、日付を操作できることです。たとえば、プラスメソッドとマイナスメソッドを使用して、日、月、または年を加算または減算できます。import java.time.LocalDate;
public class LocalDateManipulationExample {
public static void main(String[] args) {
LocalDate date3 = LocalDate.parse("2023-05-01");
LocalDate date4 = date3.plusDays(1);
LocalDate date5 = date3.minusMonths(1);
LocalDate date6 = date3.plusYears(1);
System.out.println("Date 3: " + date3);
System.out.println("Date 4: " + date4);
System.out.println("Date 5: " + date5);
System.out.println("Date 6: " + date6);
}
}
この例では、まず文字列「2023-05-01」を解析して、date3という名前の新しいLocalDateインスタンスを作成します。次に、 date3から日、月、または年を加算または減算して、date4、date5、およびdate6 という3 つの新しいLocalDateインスタンスを作成します。出力は次のようになります。
日付 3: 2023-05-01 日付 4: 2023-05-02 日付 5: 2023-04-01 日付 6: 2024-05-01
LocalDates の比較
LocalDate は日付を比較するメソッドも提供します。2 つのLocalDateインスタンスが等しいかどうか、または、equals()、isBefore()、およびisAfter()メソッドを 使用して、一方が他方の前後にあるかどうかを確認できます。import java.time.LocalDate;
public class LocalDateCompareExample {
public static void main(String[] args) {
LocalDate date1 = LocalDate.parse("2023-05-01");
LocalDate date2 = LocalDate.parse("2023-05-02");
System.out.println("Are the dates equal? " + date1.equals(date2));
System.out.println("Is date1 before date2? " + date1.isBefore(date2));
System.out.println("Is date2 after date1? " + date2.isAfter(date1));
}
}
この例では、date1とdate2という 2 つのLocalDateインスタンスを作成し、equals()、isBefore()、およびisAfter()メソッドを使用してそれらを比較します。出力はブール形式、つまりtrueまたはfalseになります。
日付は同じですか? false date1 は date2 より前ですか? true date2 は date1 より後ですか? 真実
ローカル日時
日付と時刻を表す必要がある場合は、LocalDateTimeクラスを使用できます。このクラスはLocalDateに似ていますが、時刻コンポーネントが含まれています。LocalDateTime は、日付部分と時刻部分の両方を操作およびクエリするためのメソッドを提供します。LocalDateTimeインスタンスを作成する例を次に示します。import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
LocalDateTime datetime = LocalDateTime.now();
System.out.println("Current date and time: " + datetime);
}
}
このコードはLocalDateTimeクラスをインポートし、 now()メソッドを使用してdatetimeという新しいインスタンスを作成します。出力は次のようになります。
現在の日時: 2023-05-01T15:30:00.123456789
注: 出力の「T」はタイムスタンプの開始を示します。
GO TO FULL VERSION