J'ai besoin de formater la date dans une application qui a plusieurs langues, quelle est la meilleure façon de formater la date, car chaque pays a un format de date différent, est-il donc possible de formater la date en fonction des paramètres régionaux?
Oui, en utilisant DateFormat.getDateInstance (style int, Locale aLocale) Ceci affiche la date actuelle d'une manière spécifique aux paramètres régionaux.
Ainsi, par exemple:
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, yourLocale);
String formattedDate = df.format(yourDate);
Voir la documentation pour la signification exacte du paramètre de style (SHORT
, MEDIUM
, etc.)
SimpleDateFormat a un constructeur qui prend les paramètres régionaux, avez-vous essayé cela?
http://Java.Sun.com/javase/6/docs/api/Java/text/SimpleDateFormat.html
Quelque chose comme new SimpleDateFormat("your-pattern-here", Locale.getDefault());
Utilisation de la bibliothèque Joda-Time 2.4. La classe DateTimeFormat
est une fabrique de formateurs DateTimeFormatter
. Cette classe propose une méthode forStyle
pour accéder aux formateurs appropriés à un Locale
.
DateTimeFormatter formatter = DateTimeFormat.forStyle( "MM" ).withLocale( Java.util.Locale.CANADA_FRENCH );
String output = formatter.print( DateTime.now( DateTimeZone.forID( "America/Montreal" ) ) );
L'argument à deux lettres spécifie un format pour la partie date et la partie heure. Spécifiez un caractère "S" pour le style court, "M" pour le moyen, "L" pour le long et "F" pour le plein. Une date ou une heure peut être omise en spécifiant un caractère de style '-' HYPHEN.
Notez que nous avons spécifié à la fois un paramètre régional et un fuseau horaire. Certaines personnes confondent les deux.
Nous avons besoin de toutes ces pièces pour générer correctement une représentation sous forme de chaîne d'une valeur date-heure.
Jetez un oeil à Java.text.DateFormat . La classe dérivée, Java.text.SimpleDateFormat est plus facile à utiliser (avec un peu moins de puissance)
Et voici une bonne introduction à Java internationalisation: http://Java.Sun.com/docs/books/tutorial/i18n/index.html (le " Mise en forme ", section traitant de votre problème, etc.).
Je suis d'accord avec Laura et SimpleDateFormat qui est le meilleur moyen de gérer les dates en Java. Vous pouvez définir le modèle et les paramètres régionaux. De plus, vous pouvez y jeter un œil article de wikipedia sur la date dans le monde -il n'y a pas tellement de façons différentes de l'utiliser; typiquement USA/Chine/reste du monde -