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";
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;
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());
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!