Konvertieren String in LocalDate in Java
-
Konvertierung von String in
LocalDate
mit der Methodeparse()
in Java -
Konvertieren von String in
LocalDate
mit derparse()
undofPattern()
Methode in Java - Konvertieren ein String-Datum mit einem Monat als String-Namen in Java
- Konvertierung von Datumsstrings mit Tag und Monat als Stringnamen in Java
-
Konvertierung von String Datum mit Zeit in
LocalDate
in Java - Fazit
Dieses Tutorial stellt die Konvertierung von String nach LocalDate
mit Beispielen in Java vor.
LocalDate
ist eine Klasse in Java, die uns hilft, das lokale Datum darzustellen. Das Format, in dem das Datum dargestellt wird, ist yyyy-mm-dd
.
Manchmal möchten wir vielleicht einen String in LocalDate
umwandeln, um die von der LocalDate
-Klasse bereitgestellten Funktionen zu verwenden. In diesem Tutorial werden wir verschiedene Möglichkeiten sehen, wie wir String in LocalDate
konvertieren können.
Das Datum kann in vielen Formaten dargestellt werden; Wir müssen eine Formatter-Instanz erstellen. Wir können einen Formatierer erstellen, indem wir die Klasse DateTimeFormatter
verwenden.
Anschließend übergeben wir die Formatter-Instanz an die Methode LocalDate.parse()
. Die Methode LocalDate.parse()
löst DateTimeParseException
aus, wenn der übergebene String nicht parsbar ist.
Beachten Sie, dass das Parsen dem Konvertieren von String in ein Datum entspricht und das Formatieren das Konvertieren des Datums in einen String in Java bedeutet.
Konvertierung von String in LocalDate
mit der Methode parse()
in Java
Wenn das Datum im lokalen ISO-Datumsformat (yyyy-mm-dd
) ist, müssen wir das Format nicht festlegen. Wir können den String direkt in die Methode parse()
parsen, die das lokale Datum zurückgibt.
Siehe das Beispiel unten.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class SimpleTesting {
public static void main(String args[]) {
String JE_date = "2021-12-21";
// parsing the string to convert it into date
LocalDate local_date = LocalDate.parse(JE_date);
System.out.println(local_date);
}
}
Ausgabe:
2021-12-21
Konvertieren von String in LocalDate
mit der parse()
und ofPattern()
Methode in Java
Wenn das String-Datum nicht im ISO-Format vorliegt, müssen wir sein Format mithilfe der Methode DateTimeFormatter.ofPattern()
konvertieren und dann die Methode parse()
aufrufen, indem wir den Formattyp als Argument übergeben.
Siehe das Beispiel unten.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class SimpleTesting {
public static void main(String args[]) {
String JE_date = "21/12/2021";
DateTimeFormatter JEFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
// parsing the string to convert it into date
LocalDate local_date = LocalDate.parse(JE_date, JEFormatter);
System.out.println(local_date);
}
}
Ausgabe:
2021-12-21
Konvertieren ein String-Datum mit einem Monat als String-Namen in Java
Wenn das String-Datum einen Monatsnamen in Buchstaben wie Jan
, Feb
, Mar
usw. hat, müssen wir die Methode ofPattern()
mit dem Argument MMM
verwenden, was nur fehlerfrei funktioniert wenn das Standardgebietsschema entweder Locale.English
oder Locale.US
ist.
Mit anderen Worten, das Gebietsschema sollte die Sprache verstehen, in der der Monat geschrieben ist, um den String zu analysieren. Ein Gebietsschema ist ein Objekt, das eine bestimmte geografische, politische oder kulturelle Region darstellt.
Sehen Sie sich den Code unten an.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class SimpleTesting {
public static void main(String args[]) {
String JE_date = "21-Dec-2021";
DateTimeFormatter JEFormatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy");
// parsing the string to convert it into date
LocalDate local_date = LocalDate.parse(JE_date, JEFormatter);
System.out.println(local_date);
}
}
Ausgabe:
2021-12-21
Beachten Sie, dass beim obigen Format zwischen Groß- und Kleinschreibung unterschieden wird. Wir bekommen eine Ausnahme, wenn wir dec
anstelle von Dec
schreiben.
Siehe das Beispiel unten.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class SimpleTesting {
public static void main(String args[]) {
String JE_date = "21-dec-2021";
DateTimeFormatter JEFormatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy");
// parsing the string to convert it into date
LocalDate local_date = LocalDate.parse(JE_date, JEFormatter);
System.out.println(local_date);
}
}
Ausgabe:
Exception in thread "main" java.time.format.DateTimeParseException: Text '21-dec-2021' could not be parsed at index 3
at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2052)
at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1954)
at java.base/java.time.LocalDate.parse(LocalDate.java:430)
at SimpleTesting.main(SimpleTesting.java:8)
Lassen Sie uns nun das Standardgebietsschema auf ein anderes Land ändern, das kein Englisch versteht, wie China. Wir tun dies, indem wir die Methode Locale.setDefault()
verwenden und das erforderliche Gebietsschema als Argument übergeben, in diesem Fall Locale.CHINESE
.
Sehen Sie sich den Code unten an.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class SimpleTesting {
public static void main(String args[]) {
Locale.setDefault(Locale.CHINESE); // setting locale as chinese
String JE_date = "21-Dec-2021";
DateTimeFormatter JEFormatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy");
// parsing the string to convert it into date
LocalDate local_date = LocalDate.parse(JE_date, JEFormatter);
System.out.println(local_date);
}
}
Ausgabe:
Exception in thread "main" java.time.format.DateTimeParseException: Text '21-Dec-2021' could not be parsed at index 3
at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2052)
at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1954)
at java.base/java.time.LocalDate.parse(LocalDate.java:430)
at SimpleTesting.main(SimpleTesting.java:10)
Im obigen Code erhalten wir einen Fehler, weil das chinesische Gebietsschema kein Englisch versteht und daher den Monatsnamen nicht verstehen kann. Angenommen, unser String ist auf Französisch: 21-mai-2021
, dann müssen wir, um dies in ein Datum umzuwandeln, Locale.FRANCE
als Argument in der ofPattern()
-Methode übergeben.
Siehe das Beispiel unten.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class SimpleTesting {
public static void main(String args[]) {
String JE_date = "21-mai-2021";
DateTimeFormatter JEFormatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.FRANCE);
// parsing the string to convert it into date
LocalDate local_date = LocalDate.parse(JE_date, JEFormatter);
System.out.println(local_date);
}
}
Ausgabe:
2021-05-21
Um Ausnahmen zu vermeiden, übergeben Sie also Locale.US
als Argument, wenn das Datum englische Wörter enthält.
Konvertierung von Datumsstrings mit Tag und Monat als Stringnamen in Java
Die Zeichenfolge date kann Tages- und Monatsnamen als englische Abkürzung enthalten, z. B. Tue, Dec 21, 2021
. Um dieses Datum wie im vorherigen Fall in ein lokales Datum umzuwandeln, können wir dieses Format einfach mit der Methode ofPattern()
konvertieren.
Siehe das Beispiel unten.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class SimpleTesting {
public static void main(String args[]) {
String JE_date = "Tue, Dec 21 2021";
DateTimeFormatter JEFormatter = DateTimeFormatter.ofPattern("E, MMM d yyyy", Locale.US);
// parsing the string to convert it into date
LocalDate local_date = LocalDate.parse(JE_date, JEFormatter);
System.out.println(local_date);
}
}
Ausgabe:
2021-12-21
Beachten Sie, dass wir Locale.US
als Argument in der ofPattern()
-Methode übergeben haben. Es soll eine Ausnahme verhindern, wenn das Standardgebietsschema nicht Englisch ist.
Konvertierung von String Datum mit Zeit in LocalDate
in Java
String-Datum kann auch Zeit mit dem Datum wie Tuesday, Dec 21, 2021, 10:30:15 PM
haben. Um dieses Datum zu konvertieren, müssen wir zuerst das Format in der Methode ofPattern()
festlegen und dann die Methode parse()
verwenden, um das lokale Datum zu erhalten.
Siehe das Beispiel unten.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class SimpleTesting {
public static void main(String args[]) {
String JE_date = "Tuesday, Dec 21, 2021 10:30:15 PM";
DateTimeFormatter JEFormatter =
DateTimeFormatter.ofPattern("EEEE, MMM d, yyyy hh:mm:ss a", Locale.US);
// parsing the string to convert it into date
LocalDate local_date = LocalDate.parse(JE_date, JEFormatter);
System.out.println(local_date);
}
}
Ausgabe:
2021-12-21
Fazit
In diesem Tutorial wurde die Konvertierung von String in LocalDate
in Java besprochen. Abgesehen von den oben besprochenen Formaten können mehrere andere Formate verwendet werden, um das Datum zu erhalten.
Verwandter Artikel - Java Date
- Finden Sie den Wochentag mit Zellers Kongruenz in Java
- Java Get Wochentag
- Java-Datum vs. LocalDate
- Legen Sie die Zeitzone eines java.util.Date fest
- Kalenderdatum im Format YYYY-MM-DD in Java
Verwandter Artikel - Java String
- So führen Sie die Konvertierung von String in String-Array in Java durch
- Wie entferne ich eine Unterzeichenkette aus einer Zeichenkette in Java
- So konvertieren Sie Byte-Array in Hex-String in Java
- Wie man Java-String in Byte konvertiert
- Generieren Sie eine zufällige Zeichenkette in Java
- Die Swap-Methode in Java