2010-08-23 14 views

Répondre

0

Si je vois bien le problème, vous voulez afficher des messages avec MessageFormat comme ceci:

Object[] arguments = { 
    new Integer(7), 
    new Date(System.currentTimeMillis()), 
    "a disturbance in the Force" 
}; 

String result = MessageFormat.format(
     "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.", 
     arguments); 

(Exemple de javadoc)

J'ai vérifié la source du MessageFormat et je vois que getLocale() est commun pour l'ensemble du message. Vous ne pouvez pas en créer un distinct pour un paramètre. Pourquoi ne pas faire un paramètre avec la chaîne de date mise en forme elle-même?

Comme ceci:

Object[] arguments = { 
    new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa", Locale.UK).format(new Date()) 
}; 

String result = MessageFormat.format(
     "This is the date format which I always want independently of the locale: {1} ", 
     arguments); 

Le premier paramètre des méthodes de format peut provenir de fichiers de propriétés localisées.

+0

Le problème concernait davantage la ressource à utiliser en fonction de l'utilisateur souhaitant la voir, et non la manière de formater les dates avec un environnement local codé en dur. SimpleDateFormat utilisera toujours les paramètres régionaux par défaut. mais le texte utilisera un regroupement de ressources spécifique. Merci – Marc