Salut,
J'essaie de m'initier à l'internationalisation (i18n) afin que mon application web prenne en compte la "langue" de l'utilisateur connecté.
J'ai un problème en particulier avec les dates, c'est une vraie galère et je me demandais si quelqu'un avait une méthode propre pour gérer tous les cas de manière générique.
Exemple:
J'affiche à un utilisateur son historique des absences dans l'année. S'il est français, je veux que les dates soient formattées en JJ/MM/SSAA et s'il est anglais, en MM/JJ/SSAA.
Problème:
Je dois utiliser un objet Locale que j'ai déterminé à la connexion de l'utilisateur et stocké dans sa session HTTP. Pour formatter les dates, je vois rien d'autre que d'utiliser un objet DateFormat en appelant DateFormat.getDateInstance(int style, Locale aLocale). Seulement, aucun style par défaut (SHORT, FULL? etc...) ne convient car il n'intègre pas le siècle quand j'appelle monDateFormat.format(maDate);
monDateFormat.format(maDate) + Locale.FRANCE -> JJ/MM/AA
monDateFormat.format(maDate) + Locale.UK -> MM/JJ/AA
Je pourrais modifier la pattern de mon DateFormat en remplaçant dans la chaîne "dd/MM/yy", "yy" par "yyyy" mais c'est carrément pas propre (selon moi) et je devrais le faire pour chaque locale susceptible d'être utilisée.
Je vois autre chose, ce serait de construire un objet SimpleDateFormat en passant dans le constructeur le pattern à utiliser pour formatter ma date mais dans ce cas-là, la Locale ne sert plus à rien puisque j'indique "en dur" un format !
Une idée ?
Message édité par machinbidule1974 le 15-11-2002 à 11:52:07