Y at-il une autre façon de récupérer modèle par défaut pour un endroit donné?
-
28-09-2019 - |
Question
Est-il possible de récupérer un modèle par défaut pour un endroit donné, sans jeter un objet retourné par DateFormat.get*Instance()
à un SimpleDateFormat
?
La solution
Vous pouvez récupérer les symboles de format de date pour une langue particulière en exécutant le code Java suivant:
System.out.println(DateFormatSymbols.getInstance
(new Locale("en_US")).getLocalPatternChars());
System.out.println(DateFormatSymbols.getInstance
(new Locale("nl_NL")).getLocalPatternChars());
Dans ce cas particulier, le néerlandais, les symboles de format de date sont les mêmes.
GyMdkHmsSEDFwWahKzZ
GyMdkHmsSEDFwWahKzZ
Dans le cas où les symboles de la langue étrangère sont différents, vous substituer le caractère de langue étrangère pour le caractère anglais dans la chaîne de format simple.
La classe DateFormatSymbols
existe depuis au moins Java 1.4.2.
Autres conseils
Le modèle lui-même est unique à SimpleDateFormat qui est la raison pour laquelle vous le jeter.
Si vous trouvez un DateFormat qui ne SimpleDateFormat vous voulez enregistrer l'exception, l'enregistrement de la classe la mise en œuvre effective est, et à ce moment-là, vous aurez suffisamment d'informations pour décider comment gérer la situation.
Pour l'instant, car il n'y a pas de modèle ne pas ajouter celui-ci à la liste des résultats si ce n'est pas SimpleDateFormat.
Si je peux demander, Pourquoi vous retourne une chaîne concaténée au lieu d'une collection de chaînes? Il semble que ce serait plus facile de boucle à travers vos résultats.
Si la chaîne concaténée est essentiel, utiliser StringBuilder pour construire puisque vous allez créer moins d'objets et d'améliorer les performances. Il est une bonne habitude d'être quand la construction de chaînes dans une boucle.