- Comment tester simplement la validité d'une date ? [Java] - Java - Programmation
Marsh Posté le 22-03-2004 à 19:03:39
ReplyMarsh Posté le 22-03-2004 à 19:14:35
En réponse à Jubijub, il est tjs possible d'instancier un objet GregorianCalendar de la manière suivante sans avoir la moindre erreur : GregorianCalendar c = new GregorianCalendar(2004,2,30);
Marsh Posté le 22-03-2004 à 19:28:32
je présume que si tu le rappelle il te renvoit le premier mars ?? c typique de java ca, c pareil pour les types de nombres : si t au max et que tu fais +1, tu reviens au minimum...
au pire t bon pour te coder ta classe calendar...ce que tu veux éviter je présume aussi
Marsh Posté le 22-03-2004 à 19:34:12
ReplyMarsh Posté le 22-03-2004 à 19:43:11
le code suivant ne pose aucun prb ;-|
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy",Locale.FRANCE);
Date d = f.parse("32/02/2004" );
Marsh Posté le 22-03-2004 à 19:47:10
Citation : |
Marsh Posté le 22-03-2004 à 19:47:59
t'as essayé un setLenient(false) sur le SimpleDateFormat ?
extrait de la javadoc de Calendar :
Citation : When a Calendar is lenient, it accepts a wider range of field values than it produces. For example, a lenient GregorianCalendar interprets MONTH == JANUARY, DAY_OF_MONTH == 32 as February 1. A non-lenient GregorianCalendar throws an exception when given out-of-range field settings. When calendars recompute field values for return by get(), they normalize them. For example, a GregorianCalendar always produces DAY_OF_MONTH values between 1 and the length of the month. |
Marsh Posté le 22-03-2004 à 20:21:06
Merci pour tout !
Le code suivant retourne effectivement une exception :
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy" );
f.setLenient(false);
Date d = f.parse("30/02/2004" );
Marsh Posté le 23-03-2004 à 20:53:55
Tu veux faire comment sinon, pour transformer une chaîne de caractères entrée par un utilisateur en Date ?
Marsh Posté le 22-03-2004 à 18:28:03
Dans un formulaire, l'utilisateur doit saisir une date. J'aimerais pouvoir tester la validité de cette date dans la page JSP qui se charge de contrôler les valeurs saisies avant d'enregistrer tout ça en base de données. Comment faire pour tester la validité de la date ? Ce serait quand même mieux que l'utilisateur ne puisse pas saisir 30/02/2004 par exemple.
Merci pour vos réponses.