12
votes

PrimeFaces Calendrier: inscription de la date incorrecte

Utilisation de JSF 2.2.0.

Pour toute la date, il semble enlever un jour. Lorsque je clique sur le 8 novembre, il affiche le 11/08/2011. Mais ensuite, il stocke le 7 novembre 2011 dans mon champ de date dans mon haricot géré.

Je vis à Singapour, me demandant si c'est un problème avec le fuseau horaire.


4 commentaires

Pourrait être. Sinon, cela peut être un problème de la même surface. C'est assez buggy ... Quoi qu'il en soit, n'utilisez pas date -s, utilisez calendrier -s à la place.


Un champ de date ne peut même pas stocker une date précise. Toutes les magasins informatiques sont un entier. Il existe différentes façons de transmettre cet entier à une date, ce qui vient de votre problème.


@Zeller Je suis intéressé par votre recommandation de ne pas utiliser Java.Util.date. Pourquoi est-ce?


@ 7Specialgems: Voir ce message: Stackoverflow.com/Questtions/1404210/java-date-vs-calendar


8 Réponses :



25
votes

Essayez d'ajouter ceci à votre web.xml xxx


2 commentaires

C'est certainement un problème de fuseau horaire. Vous pouvez (devrait être) exécuter votre serveur en UTC. Les principauxCaces vont régionaliser votre date et la convertirez-la au temps de l'utilisateur. Vous pouvez et devriez probablement utiliser votre serveur avec "-Duser.timeZone = UTC". Le contexte param doit le réparer.


Problème confirmée, Timezone. Le paramètre de contexte fixe (JSF 2.2.5, PrimeFaces 4.0).



0
votes

Ajout de l'argument -duser.timezone = uc au paramètre de démarrage résolu problème pour moi.

résumer: P: Planifier le travail seulement Bien que les paramètres suivants sont des ensembles:

-duser.timezone = uc xxx


0 commentaires

0
votes

Je viens d'ajouter le paramètre suivant dans web.xml et le problème est corrigé. Je n'ai pas inclus aucune commande comme -duser.timezone = UTC lors du démarrage du serveur, c'est toujours corrigé le problème.

javax.faces.dateTimeConverter_default_timezone_is_system_timezone vrai

Cordialement Khaleel


0 commentaires

0
votes

J'utilise Wildfly 8 et PF 5.0.rc1 et la seule chose qui a fait que l'astuce pour moi était de définir le fuseau horaire du calendrier à rien ... XXX

Ne pas Sachez s'il s'agit d'une solution appropriée, semble plus semblable à une solution de contournement, mais cela fonctionnait bien localement et déployé.


0 commentaires

2
votes

Si vous utilisez Premefaces 5, dans votre planificateur:

<p:schedule ...ignoreTimezone="false" />


0 commentaires

0
votes

Peut-être que c'est parce que vous n'avez pas inséré les heures. Par exemple, dans ce cas,

<p:calendar id="dateFromCalendar"
    value="#{platform.frameBean.dateFrom}" showOn="button"
    pattern="dd-MM-yyyy HH:mm" timeZone="Europe/Warsaw">
</p:calendar>


0 commentaires

0
votes

Dans votre composant de calendrier, ajoutez un convertisseur et indiquez votre fustion horaire TimeZone E.G

<p:calendar id="date">
  <f:convertDateTime timeZone="Asia/Singapore"></f:convertDateTime>
</p:calendar


0 commentaires