Soucis de comparaison de date
Bonjour ls gens. Tout d'abord je vous présente toutes mes confuses, le topic est peut être mal placé: il ne concerne pas uniquement jsf mais le soucis en découle directement, du moins je le pense.
J'ai une page jsf qui présente 4 calendar ainsi formés:
Code:
1 2 3 4 5
| <rich:calendar id="dateSortMax" value="#{Rap_Cta_Flo_1.date_sortie_max}" enableManualInput="true"
datePattern="#{messages['commons_datePattern']}">
<a4j:support event="onchanged" reRender="Rap_Cta_Flo_1_listesAliments" />
<a4j:support event="oninputchange" reRender="Rap_Cta_Flo_1_listesAliments" />
</rich:calendar> |
Les dates entrées sont ensuite traitées dans mon bean d'action jusqu'à l'endroit où je commence m'interroger:
Code:
1 2 3 4 5 6 7 8 9
| {
apresDateMin = date_sortie_min.compareTo(source.getDateSortie()) <= 0;
LOG.debug("date de sortie #0 apres date_sortie_min #1 : #2",source.getDateSortie(),date_sortie_min,apresDateMin);
}
(...)
{
avantDateMax = date_sortie_max.compareTo(source.getDateSortie()) >= 0;
LOG.debug("date de sortie #0 avant date_sortie_max #1 : #2",source.getDateSortie(),date_sortie_max,avantDateMax);
} |
Ce code fonctionne correctement lorsque j'utilise le calendar à la souris pour entrer mes dates:
Citation:
date de sortie 2008-11-28 00:00:00.0 avant date_sortie_max Thu Dec 03 00:00:00 CET 2009 : true
mais lorsque je les entre à la main j'obtient:
Citation:
date de sortie 2008-11-28 00:00:00.0 avant date_sortie_max Tue Dec 03 00:00:00 CET 9 : false
Je rève, ou ce sagouin m'explique que le 28/11/2008 n'est pas avant le 3/12/2009?
Bon j'imagine que je me fais des idées et qu'il y a une coquille quelque part. Le fait que le toString des dates diffèrent complètement (Dec 03 00:00:00 CET 9 quand j'entre la date à la main, Dec 03 00:00:00 CET 2009 quand j'utilise la popUp calendar) me fait penser que c'est dans cette direction qu'il faut chercher,d'ou le choix du forum, mais j'avoue patauger misérablement dans la gadoue de mon désaroi spiritique et quasi-métaphysique (abus de café, toussa...).
Pour info, et si ça a une importance, source.getDateSortie envoye un objet Date qui provient d'une requete HQL fait avec seam.
Et la raison d'être de
Code:
apresDateMin = date_sortie_min.compareTo(source.getDateSortie()) <= 0;
est de tester voir si date_sortie_min est antérieure ou égale à source.getDateSortie()-en d'autres termes, je vérifie si la source.getDateSortie() est compris entre date_sortie_min et date_sortie_max inclus.
Là je sèche, l'un d'entre vous aurait-il une suggestion?
Merci d'avance.