Java date de convertir la chaîne de retour à ce Jour
Dans mon JSF managed bean je l'ai déclaré à startDate comme java.utilDate type et j'ai getters et setters. À partir de la base de données date de début est de type date.
Lorsque je reçois format de valeur est de type par défaut et j'ai formater la date
SimpleDateFormat df = new SimpleDateFormat(" dd MMM yyyy");
Date oneDate = new Date(startDate);
df.format(oneDate);
Question, je suis confronté est df.format(oneDate);
renvoie la Chaîne de caractères.
Est-il possible de convertir df.format(oneDate)
de retour à ce Jour, de sorte que je n'ai pas besoin de
changer ma date de début du type de données.
Toute aide est très appréciée.
Grâce
Utilisez simplement le
Espérons que cela vous aide: docs.oracle.com/javase/1.4.2/docs/api/java/text/..., java.texte.ParsePosition)
Pourquoi ne pas prolonger la Date et simplement utiliser votre propre méthode toString?
C'est un terrible conseils, je dirais!
Je suis d'accord avec ce que vous avez dit, il vaut mieux formater dans l'INTERFACE utilisateur. J'ai donc ajouté le suivant dans ma page jsf.
parse()
méthode. J'ai cependant ne parviennent pas à voir comment cela pourrait être utile. Vous seriez probablement se retrouver avec le même Date
objet que vous avez commencé avec. Si vous avez l'intention de le formater pour la représentation humaine dans certains de l'INTERFACE utilisateur, juste formater il exactement au moment où vous allez à présent à l'être humain.Espérons que cela vous aide: docs.oracle.com/javase/1.4.2/docs/api/java/text/..., java.texte.ParsePosition)
Pourquoi ne pas prolonger la Date et simplement utiliser votre propre méthode toString?
C'est un terrible conseils, je dirais!
Je suis d'accord avec ce que vous avez dit, il vaut mieux formater dans l'INTERFACE utilisateur. J'ai donc ajouté le suivant dans ma page jsf.
<p:inputText value="#{vacationschedule.convertTime(vacationschedule.selectedRow.startDate)}"
et convertTime méthode dans managedBean est public String convertTime(Date time){ Date date = new Date(); Format format = new SimpleDateFormat("yyyy MM dd"); return format.format(date); }
<p:inputText montre correctement cependant si je voudrais utiliser <p:calendar
alors je suis d'erreur SEVERE: java.lang.IllegalArgumentException: Cannot format given Object as a Date
OriginalL'auteur Jåcob | 2012-02-27
Vous devez vous connecter pour publier un commentaire.
Que par le commentaire sur la question:
Vous êtes à la recherche de la solution dans la mauvaise direction. L'homme ciblé mise en forme doit être fait dans la Vue (UI) de côté, pas dans le Modèle de côté, laisser seul le Contrôleur de côté.
De présenter un
Date
objet dans un homme sympathique motif dans un composant JSF, vous devriez être en utilisant<f:convertDateTime>
balise standard JSF jeu de composants:De cette façon, vous pouvez garder la propriété juste
Date
tout le temps. De cette façon, vous serez également en mesure de enregistrer la valeur modifiée (ce qui ne serait pas possible avec votre première tentative!).À la PrimeFaces'
<p:calendrier>
composant, il a unpattern
attribut exactement à cette fin:Télécharger et consulter le PrimeFaces Guide De L'Utilisateur à apprendre à propos de tous les attributs disponibles.
Vous êtes les bienvenus.
Mais je vois un petit problème lorsque j'affiche la date dans
<p:calendar
,la date est indiquée avec une date à l'avance c'est à dire si je suis sélectionner01-Dec-2012
, elle s'affiche comme02-Dec-2012
Est-ce quelque chose de primefaces?Non, il a quelque chose à voir avec le fuseau horaire. Votre système de fuseau horaire par défaut est apparemment au-delà de l'heure GMT.
Date
par défaut GMT. Le<p:calendar>
par défaut du système fuseau horaire par défaut. Utiliser letimeZone
attribut pour spécifier explicitement le fuseau horaire, par exempletimeZone="GMT"
. Voir aussi la PrimeFaces Guide de l'utilisateur de la documentation qui j'ai lié dans ma réponse.BalusC Merci encore. Comme vous l'avez dit stackoverflow.com/questions/2689245/... j'ai ajouté
<context-param> <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name> <param-value>true</param-value> </context-param>
web.xml et qui a résolu le problème avec la date. Apprécié.OriginalL'auteur BalusC
À l'aide de la même
SimpleDateFormat
objet que vous avez créé,OriginalL'auteur DaveJohnston
J'espère que mon code vous aider à
OriginalL'auteur mandrake
Cela fonctionne pour moi:
Référence: JSF 2.0 + Primefaces 2.x: chaîne de liaison à l'agenda
OriginalL'auteur Tiago PC