2017-09-20 1 views
1

J'ai un calendrier où je peux choisir la date et l'heure (seulement les heures et minutes):Primefaces Calendrier ne montrent pas secondes

<p:calendar locale="de" pattern="dd.MM.yyyy HH:mm"

Non, je dois fournir des traductions anglais. Donc, je dois supprimer la partie locale et pattern.

Y a-t-il une possibilité d'avoir un calendrier sensible aux paramètres régionaux avec la date et l'heure (pas de secondes)?

Résumé: Lorsque les paramètres régionaux sont l'allemand, je veux avoir dd.mm.yyyy HH:mm. Lorsque l'environnement local est l'anglais, je souhaite avoir mm/dd/yyyy HH:mm

+0

Veuillez lire https://stackoverflow.com/questions/2668161/internationalization-in-jsf-when-to-use-message-bundle-and-resource-bundle –

+0

Avez-vous essayé 'jj/mm/aaaa HH: mm: ss'?!? –

+0

bien alors c'est l'anglais par défaut. Je veux 'dd.mm.yyyy HH: mm' pour l'allemand et' mm/jj/aaaa HH: mm' pour l'anglais – matthias

Répondre

2

Accrocher l'attribut de modèle jusqu'à une méthode de bean qui renvoie le modèle que vous souhaitez pour chaque environnement local donné.

<p:calendar pattern="#{bean.localePattern}"> 

public String getLocalePattern() { 
    Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale(); 
    if (Locale.GERMAN.equals(locale)) { 
     return "dd.MM.yyyy HH:mm"; 
    } else if (Locale.ENGLISH.equals(locale)) { 
     return "MM/dd/yyy HH:mm"; 
    }else { 
     //return default pattern... 
    } 
} 

Edit: Jaspers suggestion de tirer parti d'un ensemble de ressources localisée est un grand (si vous êtes déjà/plan pour utiliser JSF est construit dans les fonctionnalités de localisation).

+0

en supprimant ': ss' du modèle semble être plus dynamique pour moi. Cependant, notez que le mois est représenté par "M" (majuscule) –