Heim > Java > javaLernprogramm > Warum wird beim Parsen einer Datumszeichenfolge in Java „Unzulässiges Musterzeichen ‚T'' ausgegeben?

Warum wird beim Parsen einer Datumszeichenfolge in Java „Unzulässiges Musterzeichen ‚T'' ausgegeben?

Patricia Arquette
Freigeben: 2024-12-18 08:41:11
Original
148 Leute haben es durchsucht

Why Does Parsing a Date String in Java Throw

Ungültiges Musterzeichen „T“ beim Parsen einer Datumszeichenfolge in java.util.Date

Parsen einer Datumszeichenfolge in eine java.util. Das Datumsobjekt erfordert ein Muster, das bestimmte Regeln einhält. Ein häufiges Muster ist „yyyy-MM-ddThh:mm:ssZ“, das Datumsangaben im ISO 8601-Format darstellt.

Problem:
Bei Verwendung des angegebenen Musters tritt eine Ausnahme auf wird mit der Meldung „java.lang.IllegalArgumentException: Unzulässiges Musterzeichen“ ausgelöst 'T'."

Grund:
Das 'T' im Muster stellt ein Trennzeichen zwischen den Datums- und Uhrzeitkomponenten dar. Im SimpleDateFormat von Java muss das „T“-Zeichen jedoch mit einfachen Anführungszeichen auf beiden Seiten maskiert werden, um korrekt erkannt zu werden.

Lösung 1: „T“ im Muster maskieren
Um das Problem mit dem ursprünglichen Muster zu lösen, maskieren Sie das „T“-Zeichen wie folgt:

String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";
Nach dem Login kopieren

Lösung 2: Verwenden Sie ISO_8601_24H_FULL_FORMAT
Alternativ können Sie die vordefinierte ISO_8601_24H_FULL_FORMAT-Konstante verwenden, die von der Klasse Q2597083 bereitgestellt wird:

String pattern = Q2597083.ISO_8601_24H_FULL_FORMAT;
Nach dem Login kopieren

Für Java 8 und höher:
Für Java 8 und höher ist es Es wird empfohlen, die Klasse DateTimeFormatter anstelle von SimpleDateFormat und Instant anstelle von Date zu verwenden. Hier ist ein Beispiel:

import java.time.Instant;
import java.time.format.DateTimeFormatter;

String dateString = "2010-10-02T12:23:23Z";
DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
Instant d = Instant.parse(dateString);
System.out.println(d.getYear());
Nach dem Login kopieren

Mit diesen Lösungen können Sie Datumszeichenfolgen im ISO 8601-Format erfolgreich analysieren, ohne dass die Ausnahme „Ungültiges Musterzeichen ‚T‘“ auftritt.

Das obige ist der detaillierte Inhalt vonWarum wird beim Parsen einer Datumszeichenfolge in Java „Unzulässiges Musterzeichen ‚T'' ausgegeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage