Heim > Java > javaLernprogramm > Warum wirft SimpleDateFormat ein „nicht analysierbares Datum' aus?

Warum wirft SimpleDateFormat ein „nicht analysierbares Datum' aus?

Susan Sarandon
Freigeben: 2025-01-01 02:22:09
Original
288 Leute haben es durchsucht

Why Does SimpleDateFormat Throw

Nicht analysierbare Daten mit SimpleDateFormat: Geben Sie das Gebietsschema an oder verwenden Sie DateTimeFormatter

Problem:
Bei Verwendung von SimpleDateFormat Beim Analysieren von Daten kann der Fehler auftreten „java.text.ParseException: Unparseable date“, insbesondere wenn das Gebietsschema nicht angegeben ist.

Erklärung:
SimpleDateFormat erfordert ein Gebietsschema, um Datumsangaben korrekt zu analysieren. Wenn keine angegeben ist, wird das Standardgebietsschema des Systems verwendet, das möglicherweise nicht mit dem analysierten Format übereinstimmt.

Lösung:

  1. Geben Sie immer das an locale: Verwenden Sie die Konstruktorüberladung von SimpleDateFormat, die ein Locale-Argument akzeptiert. Zum Beispiel:
SimpleDateFormat dtfmt = new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.ENGLISH);
Nach dem Login kopieren
  1. Verwenden Sie die moderne DateTimeFormatter-API:
  • DateTimeFormatter ist die bevorzugte API zum Formatieren und Analysieren von Datums- und Uhrzeitangaben.
  • Es bietet mehr Flexibilität und Kontrolle über die Formatierung, einschließlich der Möglichkeit zur Angabe ein Gebietsschema.

Demo mit DateTimeFormatter:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        String strDateTime = "24 Oct 2016 7:31 pm";
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("d MMM uuuu h:m a").withLocale(Locale.ENGLISH);
        LocalDateTime ldt = LocalDateTime.parse(strDateTime, dtf);
        System.out.println(ldt); // prints 2016-10-24T19:31
    }
}
Nach dem Login kopieren

Hinweis:

  • Das Standardgebietsschema, das von DateTimeFormatter angegeben wird, verwendet das aktuelle System Gebietsschema.
  • Geben Sie immer das Gebietsschema explizit an, um potenzielle Analyseprobleme zu vermeiden.

Das obige ist der detaillierte Inhalt vonWarum wirft SimpleDateFormat ein „nicht analysierbares Datum' aus?. 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