Maison >Java >javaDidacticiel >Pourquoi mon analyse de date échoue-t-elle dans différents paramètres régionaux ?

Pourquoi mon analyse de date échoue-t-elle dans différents paramètres régionaux ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 13:14:12792parcourir

Why Does My Date Parsing Fail on Different Locales?

Impossible d'analyser une date en raison d'une mauvaise langue

Vous essayez d'analyser une date- chaîne d'heure "24 octobre 2016 19h31" avec un formateur date-heure dtfmt instancié avec les paramètres régionaux par défaut. Cependant, lorsque le code s'exécute sur un téléphone, il rencontre une exception ParseException avec le message "java.text.ParseException : Unparseable date: java.text.DateFormat.parse(DateFormat.java:579)".

La cause du exception

Le détail crucial de ce message d'exception est que le système tente d'appliquer les paramètres régionaux par défaut lors de l'analyse de la date, ce qui n'est pas ce à quoi nous nous attendions. Par défaut, les paramètres régionaux d'Android sont définis pour correspondre à la langue et aux paramètres régionaux du système. Pour de nombreux appareils, il s'agira d'une langue autre que l'anglais, ce qui entraînera un échec d'analyse.

Solution

Toujours spécifiez explicitement les paramètres régionaux lors de la création d'un formateur de date et d'heure, qu'il s'agisse de SimpleDateFormat ou de DateTimeFormatter. Dans votre cas, vous pouvez définir les paramètres régionaux sur Locale.ENGLISH comme suit :


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

Ceci précise que le L'analyseur date-heure doit utiliser les conventions de la langue anglaise pour analyser la chaîne date-heure. Cela garantira que la même chaîne date-heure est analysée correctement quels que soient les paramètres régionaux du système.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn