Datumszeichenfolgen mit ungültigen Zeichen analysieren
Beim Versuch, eine Datumszeichenfolge in Java mit SimpleDateFormat zu analysieren, kann es zu der Ausnahme „Ungültiges Muster“ kommen Zeichen 'T'". Dieses Problem tritt auf, wenn die Datumszeichenfolge ein „T“-Zeichen enthält, das die Zeitkomponente angibt, wenn der ISO 8601-Standard befolgt wird.
Ursache der Ausnahme
Das SimpleDateFormat Die Klasse interpretiert „T“ als Sonderzeichen, das die Datums- und Uhrzeitteile der Zeichenfolge trennt. Das Standardmuster enthält jedoch kein „T“ als Zeichen, was zu der Ausnahme führt.
Mögliche Lösungen
Es gibt mehrere Möglichkeiten, dieses Problem zu beheben:
Ändern Sie die Muster:
Verwenden Sie DateTimeFormatter (Java 8 ):
Beispiel:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ"); Date date = formatter.parse("2010-10-02T12:23:23Z", LocalDateTime::from);
Manuelle Zeichenfolgenaufteilung:
Hinweis:
Wenn die Datumszeichenfolge ein nachgestelltes „Z“ zur Angabe der UTC-Zeit enthält, stellen Sie sicher, dass das „ XXX'-Teil des Musters ist enthalten.
Verbessertes Codebeispiel (mit Escapezeichen 'T'):
public static void main(String[] args) { String date = "2010-10-02T12:23:23Z"; String pattern = "yyyy-MM-dd'T'hh:mm:ssXXX"; SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { Date d = sdf.parse(date); System.out.println(d.getYear()); } catch (ParseException e) { e.printStackTrace(); } }
Das obige ist der detaillierte Inhalt vonWie gehe ich mit „Ungültiges Musterzeichen „T'' beim Analysieren von Datumsangaben in Java um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!