Valider le format d'une date ? Bug avec SimpleDateFormat ? [Java] - Java - Programmation
Marsh Posté le 03-04-2003 à 17:19:59
Esteb@n a écrit : Je voudrais valider le format d'une date en java, mais ca ne fonctionne pas vraiment, voilà comment je fais : |
heu format.parse(...) ca renvoie pas un objet Date plutot qu'un boolean
Marsh Posté le 03-04-2003 à 17:22:08
oui mais ca declenche une erreur si le format n'est pas correcte (et mon code est dans un try catch).
Ca marche avec "toto" mais pas avec "01/01/20aa"
Marsh Posté le 03-04-2003 à 17:28:17
Esteb@n a écrit : oui mais ca declenche une erreur si le format n'est pas correcte (et mon code est dans un try catch). |
arf ok bizarre.
et ca te met quoi dans ton objet Date resultant ?
Marsh Posté le 03-04-2003 à 17:29:49
Code :
|
voilà. Si tu veux faire ca bien, tu te redéfinies ta propre SimpleDateFormat qui étend java.text.SimpleDateFormat et qui balance une ParseException quand le ParsePosition est pas en fin de chaine.
Marsh Posté le 03-04-2003 à 17:34:46
ha ok en fait quand il parsait 20aa, il interprete année = (19)20, et le reste "on s'en fout", non ?
Marsh Posté le 03-04-2003 à 17:39:03
bobuse a écrit : ha ok en fait quand il parsait 20aa, il interprete année = (19)20, et le reste "on s'en fout", non ? |
nan, c'était l'année 20, et le reste il le parse pas. Et puisque la date est valide, il ne généère pas de ParseException.
Il faut utiliser le ParsePosition pour voir il s'est arrêté ... Ca permet d'enchainer des parsing dans une même chaine.
Marsh Posté le 03-04-2003 à 17:59:40
Niquel merci bcp Sinon j'allais partir dans des substring et tout
Marsh Posté le 03-04-2003 à 17:00:04
Je voudrais valider le format d'une date en java, mais ca ne fonctionne pas vraiment, voilà comment je fais :
format = new SimpleDateFormat("dd/MM/yyyy" );
format.setLenient(false);
format.parse(date);
le probleme c'est que 21/01/200a me retourne vrai