Heim > Java > javaLernprogramm > Wie gehe ich mit „Ungültiges Musterzeichen „T'' beim Analysieren von Datumsangaben in Java um?

Wie gehe ich mit „Ungültiges Musterzeichen „T'' beim Analysieren von Datumsangaben in Java um?

Patricia Arquette
Freigeben: 2024-12-08 00:27:10
Original
974 Leute haben es durchsucht

How to Handle

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:

  1. Ändern Sie die Muster:

    • Fügen Sie in der Musterzeichenfolge ein einfaches Anführungszeichen auf beiden Seiten von „T“ hinzu. Dadurch wird das Zeichen maskiert, sodass es als Literal interpretiert werden kann.
    • Beispiel: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ")
  2. Verwenden Sie DateTimeFormatter (Java 8 ):

    • Beginnen Sie mit der Verwendung der modernen DateTimeFormatter-Klasse, die in Java 8 eingeführt wurde.
    • Erstellen Sie einen Formatierer mit entsprechendem Datum und Uhrzeit Muster.
    • Beispiel:

       DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
       Date date = formatter.parse("2010-10-02T12:23:23Z", LocalDateTime::from);
      Nach dem Login kopieren
  3. Manuelle Zeichenfolgenaufteilung:

    • Wenn die oben genannten Ansätze nicht funktionieren, sollten Sie erwägen, die Datumszeichenfolge manuell aufzuteilen und die Datums- und Uhrzeitkomponenten zu analysieren separat.

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();
    }
}
Nach dem Login kopieren

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!

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