Bonjour,
Tu peux suivre cet exemple que j'utilise et qui fonctionne :
Pour controler le format de ta date :
String myDate = "2007-05-26";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(true);
Date d = new Date();
try {
d = sdf.parse(myDate );
String t = sdf.format(d);
if(t.compareTo(myDate) != 0)
throw new Exception("MESSAGE ERREUR);
} catch (Exception e) {
// --- Gestion mauvaise date
}
Et pour contrôler s'il s'agit d'une date réelle, je crois que ce code fonctionne (pas certain à vérifier) :
Calendar c = Calendar.getInstance();
String myDate = "2007-95-26";
try{
c.setLenient(false);
c.set( Integer.valueOf(getFrom().substring(0,4)).intValue(),
Integer.valueOf(getFrom().substring(5,7)).intValue(),
Integer.valueOf(getFrom().substring(8,10)).intValue());
c.getTime();
}
catch(Exception iAE){
// --- Gestion de date inexistante (ou d'erreur)
}
Avec
----
String unedate = "2007-95-26"; // celle de ton exemple
mano = unedate.substring(0,4);
p1 = Integer.parseInt(mano);
mano = unedate.substring(5,7);
p2 = Integer.parseInt(mano);
mano = unedate.substring(8,10);
p3 = Integer.parseInt(mano);
try
{
GregorianCalendar gc = new GregorianCalendar(p1, p2, p3);
gc.setLenient(false); // sans cette ligne, pas d'exception possible
// (true par defaut)
}
catch (Exception e) {
e.printStackTrace();
----
c'est bon a tous les coups.
Cordialement Dan