Heim >Java >javaLernprogramm >Warum schlägt das Parsen meines Datums an verschiedenen Orten fehl?

Warum schlägt das Parsen meines Datums an verschiedenen Orten fehl?

Susan Sarandon
Susan SarandonOriginal
2024-12-19 13:14:12790Durchsuche

Why Does My Date Parsing Fail on Different Locales?

Ein Datum kann aufgrund eines falschen Gebietsschemas nicht analysiert werden

Sie versuchen, ein Datum zu analysieren- Zeitzeichenfolge „24. Okt. 2016 19:31 Uhr“ mit einem Datum-Uhrzeit-Formatierer, der mit dtfmt instanziiert wurde Standardgebietsschema. Wenn der Code jedoch auf einem Telefon ausgeführt wird, trifft er auf eine ParseException-Ausnahme mit der Meldung „java.text.ParseException: Unparseable date: java.text.DateFormat.parse(DateFormat.java:579)“.

Die Ursache dafür Ausnahme

Das entscheidende Detail in dieser Ausnahmemeldung ist, dass das System versucht, beim Parsen des Datums das Standardgebietsschema anzuwenden, was nicht unseren Erwartungen entspricht. Standardmäßig ist das Gebietsschema des Android so eingestellt, dass es mit der Sprache und den regionalen Einstellungen des Systems übereinstimmt. Bei vielen Geräten ist dies ein anderes Gebietsschema als Englisch, was zu einem Analysefehler führt.

Solution

Immer Geben Sie das Gebietsschema explizit an, wenn Sie einen Datum-Uhrzeit-Formatierer erstellen, unabhängig davon, ob es sich um SimpleDateFormat oder DateTimeFormatter handelt. In Ihrem Fall können Sie das Gebietsschema wie folgt auf Locale.ENGLISH festlegen:


SimpleDateFormat dtfmt=new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.ENGLISH);<br>

Dies gibt das Datum und die Uhrzeit an Der Parser sollte die englischen Sprachkonventionen verwenden, um die Datums-/Uhrzeitzeichenfolge zu analysieren. Dadurch wird sichergestellt, dass unabhängig von den Gebietsschemaeinstellungen des Systems dieselbe Datums-/Uhrzeitzeichenfolge korrekt analysiert wird.

Das obige ist der detaillierte Inhalt vonWarum schlägt das Parsen meines Datums an verschiedenen Orten fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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