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)“.
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.
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!