Einführung
Die LocalDate
-Klasse in Java8 bietet mehrere Methoden, um Datumswerte zu manipulieren. Eine solche Methode ist withMonth()
, die eine neue LocalDate
-Instanz zurückgibt, nachdem der Monat des Jahres geändert oder festgelegt wurde.
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
Die LocalDate
-Klasse in Java8 bietet mehrere Methoden, um Datumswerte zu manipulieren. Eine solche Methode ist withMonth()
, die eine neue LocalDate
-Instanz zurückgibt, nachdem der Monat des Jahres geändert oder festgelegt wurde.
Der erste Schritt besteht darin, eine LocalDate
-Instanz in Java zu erstellen. Die LocalDate
-Klasse befindet sich im Paket java.time
, daher werden wir das Paket am Anfang unserer Code-Datei einfügen. Die LocalDate
-Klasse bietet eine of()
-Methode, mit der eine neue LocalDate
-Instanz erstellt werden kann.
import java.time.LocalDate;
public class LocalDateWithMonthMethodExample {
public static void main(String[] args) {
// Erstellen einer neuen LocalDate-Instanz
LocalDate date = LocalDate.of(2022, 10, 12);
// Ausgabe des ursprünglichen Datums
System.out.println("Original Date: " + date);
}
}
Verwenden Sie den folgenden Befehl, um den Code in der Konsole zu kompilieren und auszuführen:
javac LocalDateWithMonthMethodExample.java && java LocalDateWithMonthMethodExample
Die withMonth()
-Methode gibt eine neue LocalDate
-Instanz zurück, bei der der Monat des Jahres auf den als Argument übergebenen Wert gesetzt ist.
Wir können einen anderen Monat des Jahres mit der withMonth()
-Methode setzen und ein neu erstelltes Datum erhalten. Hier setzen wir den Monat des Jahres auf 4 und erhalten das neue Datum.
// Setzen des Monats des Jahres auf 4 und erhalten des neuen Datums
LocalDate newDate = date.withMonth(4);
// Ausgabe des neuen Datums
System.out.println("New Date: " + newDate);
Hier ist der vollständige Code:
import java.time.LocalDate;
public class LocalDateWithMonthMethodExample {
public static void main(String[] args) {
// Erstellen einer neuen LocalDate-Instanz
LocalDate date = LocalDate.of(2022, 10, 12);
// Ausgabe des ursprünglichen Datums
System.out.println("Original Date: " + date);
// Setzen des Monats des Jahres auf 4 und erhalten des neuen Datums
LocalDate newDate = date.withMonth(4);
// Ausgabe des neuen Datums
System.out.println("New Date: " + newDate);
}
}
Verwenden Sie den folgenden Befehl, um den Code in der Konsole zu kompilieren und auszuführen:
javac LocalDateWithMonthMethodExample.java && java LocalDateWithMonthMethodExample
Es sollten die folgenden Ausgabe angezeigt werden:
Original Date: 2022-10-12
New Date: 2022-04-12
Wenn der Monatswert, der an die withMonth()
-Methode übergeben wird, ungültig ist, d.h. außerhalb des Bereichs [1, 12], wird eine DateTimeException
geworfen.
Hier ist ein Beispiel, das zeigt, wie Sie einen ungültigen Monatswert behandeln können.
import java.time.DateTimeException;
import java.time.LocalDate;
public class LocalDateWithMonthMethodExample {
public static void main(String[] args) {
// Erstellen einer neuen LocalDate-Instanz
LocalDate date = LocalDate.of(2022, 10, 12);
// Ausgabe des ursprünglichen Datums
System.out.println("Original Date: " + date);
try {
// Versuch, einen ungültigen Monatswert (13) festzulegen
LocalDate newDate = date.withMonth(13);
// Ausgabe des neuen Datums
System.out.println("New Date: " + newDate);
} catch(DateTimeException ex) {
System.out.println("Ungültiger Monatswert angegeben: " + ex.getMessage());
}
}
}
Verwenden Sie den folgenden Befehl, um den Code in der Konsole zu kompilieren und auszuführen:
javac LocalDateWithMonthMethodExample.java && java LocalDateWithMonthMethodExample
Es sollten die folgenden Ausgabe angezeigt werden:
Original Date: 2022-10-12
Ungültiger Monatswert angegeben: Invalid value for MonthOfYear (valid values 1 - 12): 13
Die withMonth()
-Methode gibt eine neue LocalDate
-Instanz zurück, bei der der Wert des Monats des Jahres auf den neuen Wert gesetzt ist, und sie ändert die ursprüngliche Datumsinstanz nicht. Wenn Sie den Wert des Monats des Jahres in der ursprünglichen Datei ändern möchten, müssen Sie den von withMonth()
zurückgegebenen Wert der ursprünglichen Datumsinstanz zuweisen, wie folgt:
// Ändern des Monats des Jahres in der ursprünglichen Datumsinstanz
date = date.withMonth(11);
// Ausgabe des aktualisierten Datums
System.out.println("Updated Date: " + date);
Hier ist der vollständige Code:
import java.time.LocalDate;
public class LocalDateWithMonthMethodExample {
public static void main(String[] args) {
// Erstellen einer neuen LocalDate-Instanz
LocalDate date = LocalDate.of(2022, 10, 12);
// Ausgabe des ursprünglichen Datums
System.out.println("Original Date: " + date);
// Setzen des Monats des Jahres auf 5 und erhalten des neuen Datums
LocalDate newDate = date.withMonth(5);
// Ausgabe des neuen Datums
System.out.println("New Date: " + newDate);
// Ändern des Monats des Jahres in der ursprünglichen Datumsinstanz
date = date.withMonth(11);
// Ausgabe des aktualisierten Datums
System.out.println("Updated Date: " + date);
}
}
Verwenden Sie den folgenden Befehl, um den Code in der Konsole zu kompilieren und auszuführen:
javac LocalDateWithMonthMethodExample.java && java LocalDateWithMonthMethodExample
Es sollten die folgenden Ausgabe angezeigt werden:
Original Date: 2022-10-12
New Date: 2022-05-12
Updated Date: 2022-11-12
Wenn der Tag des Monats für das Jahr ungültig ist, wenn der Monat geändert wird, wird er auf den letzten gültigen Tag des neuen Monats 更改为最后一个有效日期。例如,如果我们在闰年将年份的月份从 2 月更改为 4 月,日期值将自动调整为 4 月的最后一个有效日期。
// Erstellen einer neuen LocalDate-Instanz
LocalDate date = LocalDate.of(2024, 2, 29);
// Ausgabe des ursprünglichen Datums
System.out.println("Original Date: " + date);
// Setzen des Monats des Jahres auf April
LocalDate newDate = date.withMonth(4);
// Ausgabe des neuen Datums
System.out.println("New Date: " + newDate);
Hier ist der vollständige Code:
import java.time.LocalDate;
public class LocalDateWithMonthMethodExample {
public static void main(String[] args) {
// Erstellen einer neuen LocalDate-Instanz
LocalDate date = LocalDate.of(2024, 2, 29);
// Ausgabe des ursprünglichen Datums
System.out.println("Original Date: " + date);
// Setzen des Monats des Jahres auf April
LocalDate newDate = date.withMonth(4);
// Ausgabe des neuen Datums
System.out.println("New Date: " + newDate);
}
}
Verwenden Sie den folgenden Befehl, um den Code in der Konsole zu kompilieren und auszuführen:
javac LocalDateWithMonthMethodExample.java && java LocalDateWithMonthMethodExample
Es sollten die folgenden Ausgabe angezeigt werden:
Original Date: 2024-02-29
New Date: 2024-04-30
Wir können die withMonth()
-Methode in einer Schleife verwenden, um eine Liste von Datumswerten mit unterschiedlichen Monaten des Jahres zu generieren. Hier ist ein Beispiel, das Datumswerte für jeden Monat des Jahres 2022 generiert:
// Generieren von Datumswerten für jeden Monat des Jahres 2022
for (int month = 1; month <= 12; month++) {
LocalDate date = LocalDate.of(2022, month, 1);
System.out.println("Date for " + date.getMonth() + ": " + date);
}
Hier ist der vollständige Code:
import java.time.LocalDate;
public class LocalDateWithMonthMethodExample {
public static void main(String[] args) {
// Generieren von Datumswerten für jeden Monat des Jahres 2022
for (int month = 1; month <= 12; month++) {
LocalDate date = LocalDate.of(2022, month, 1);
System.out.println("Date for " + date.getMonth() + ": " + date);
}
}
}
Verwenden Sie den folgenden Befehl, um den Code in der Konsole zu kompilieren und auszuführen:
javac LocalDateWithMonthMethodExample.java && java LocalDateWithMonthMethodExample
Es sollten die folgenden Ausgabe angezeigt werden:
Date for JANUARY: 2022-01-01
Date for FEBRUARY: 2022-02-01
Date for MARCH: 2022-03-01
Date for APRIL: 2022-04-01
Date for MAY: 2022-05-01
Date for JUNE: 2022-06-01
Date for JULY: 2022-07-01
Date for AUGUST: 2022-08-01
Date for SEPTEMBER: 2022-09-01
Date for OCTOBER: 2022-10-01
Date for NOVEMBER: 2022-11-01
Date for DECEMBER: 2022-12-01
Die getMonthValue()
-Methode wird verwendet, um den Wert des Monats des Jahres eines Datums abzurufen. Hier ist ein Beispiel, das zeigt, wie man die withMonth()
- und getMonthValue()
-Methoden verwendet, um den Wert des Monats des Jahres eines Datums zu ändern und abzurufen:
// Erstellen einer neuen LocalDate-Instanz
LocalDate date = LocalDate.of(2022, 11, 15);
// Ausgabe des ursprünglichen Datums
System.out.println("Original Date: " + date);
// Abrufen des Monats-Werts
int originalMonthValue = date.getMonthValue();
// Ändern des Monats des Jahres auf 10
date = date.withMonth(10);
// Abrufen des neuen Monats-Werts
int newMonthValue = date.getMonthValue();
// Ausgabe des aktualisierten Datums und der Monats-Werte
System.out.println("Updated Date: " + date);
System.out.println("Original Month Value: " + originalMonthValue);
System.out.println("New Month Value: " + newMonthValue);
Hier ist der vollständige Code:
import java.time.LocalDate;
public class LocalDateWithMonthMethodExample {
public static void main(String[] args) {
// Erstellen einer neuen LocalDate-Instanz
LocalDate date = LocalDate.of(2022, 11, 15);
// Ausgabe des ursprünglichen Datums
System.out.println("Original Date: " + date);
// Abrufen des Monats-Werts
int originalMonthValue = date.getMonthValue();
// Ändern des Monats des Jahres auf 10
date = date.withMonth(10);
// Abrufen des neuen Monats-Werts
int newMonthValue = date.getMonthValue();
// Ausgabe des aktualisierten Datums und der Monats-Werte
System.out.println("Updated Date: " + date);
System.out.println("Original Month Value: " + originalMonthValue);
System.out.println("New Month Value: " + newMonthValue);
}
}
Verwenden Sie den folgenden Befehl, um den Code in der Konsole zu kompilieren und auszuführen:
javac LocalDateWithMonthMethodExample.java && java LocalDateWithMonthMethodExample
Es sollten die folgenden Ausgabe angezeigt werden:
Original Date: 2022-11-15
Updated Date: 2022-10-15
Original Month Value: 11
New Month Value: 10
In diesem Lab haben Sie gelernt, wie die withMonth()
-Methode verwendet wird, um eine Kopie einer LocalDate
-Instanz zu erstellen, bei der der Monat des Jahres auf einen neuen Wert gesetzt ist. Sie haben auch gelernt, wie ungültige Monatswerte behandelt werden und wie die getMonthValue()
-Methode verwendet wird, um den Wert des Monats des Jahres einer LocalDate
-Instanz abzurufen. Die withMonth()
-Methode ist ein nützliches Werkzeug zur Manipulation von Daten und kann auf viele verschiedene Weise verwendet werden, einschließlich der Generierung einer Liste von Daten für jeden Monat des Jahres.