Maison >Java >javaDidacticiel >Pourquoi mon analyse de date échoue-t-elle dans différents paramètres régionaux ?
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)".
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.
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!