Parser une date sans depasser jours et mois
Salut,
J'ai une méthode qui valide une date (doit être au format jours.mois.année et doit être dans le passé), la voila :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
private boolean dateValide() {
try {
ParsePosition pos = new ParsePosition(0);
DateFormat format = new SimpleDateFormat("dd.MM.yyyy" );
Date date = format.parse(tfDate.getText(), pos);
if (date.before(new Date()) && pos.getIndex() == tfDate.getText().length()) {
return(true);
}
} catch (Exception e) {}
return(false);
} |
Ça marche bien ! Seulement j'ai remarqué qu'on pouvait dépasser les jours et les mois.
Par exemple si je fais un print de ma date parsée :
Avec 31.12.2009 j'obtiens
Citation:
Sat Dec 31 00:00:00 CET 2009
Ça c'est normal !
Mais avec 32.12.2009 j'obtiens
Citation:
Fri Jan 01 00:00:00 CET 2010
Avec 31.13.2009 j'obtiens
Citation:
Sun Jan 31 00:00:00 CET 2010
Vous voyez ça a dépassé. Comment pourrais-je modifier ma méthode pour que ça ne parse que des dates valides ? En gros je voudrais qu'une date qui n'existe pas déclenche l'exception au lieu que ça parse en faisant le dépassement !
Merci :ccool: