Como verificar se uma determinada data digitada é válida ou não?

Boa tarde…

Gostaria de sabe:
Como verificar se uma determinada data digitada é válida ou não?

Grato.

Claudio

String s = "31/02/2009";
DateFormat df = new SimpleDateFormat ("dd/MM/yyyy");
df.setLenient (false); // aqui o pulo do gato
try {
    df.parse (s);
    // data válida
} catch (ParseException ex) {
   // data inválida
}

Claudio,

Veja esses dois tópicos, acho que resolve o seu problema:

Boa sorte.
Até mais!

df.setLenient (false); // aqui o pulo do gato

Explique melhor sobre esse codigo???
xD

lenient = Leniente; indulgente; tolerante

Se algo não é leniente, então não é tolerante.
Em particular não tolera 31/02/2009, e provoca uma exceção. (se você deixar lenient = true, o parse “dá um desconto” e transforma isso na data 03/03/2009.)

[quote=root_]df.setLenient (false); // aqui o pulo do gato

Explique melhor sobre esse codigo???
xD[/quote]

Lenient = clemente

em outras palavras, com isso, vc torna o parse imperdoável, qualquer erro lança exceções…

public static void main(String ... args) { String s = "31/02/2009"; DateFormat df = new SimpleDateFormat ("dd/MM/yyyy"); try { System.out.println(df.parse (s)); } catch (ParseException ex) { System.out.println(ex); } }

esse caso roda perfeito, pois o programa tenta corrigir a data errada, imprimindo
“Tue Mar 03 00:00:00 GMT-03:00 2009” ou seja, ele infere que 31/02/2009 é 28/02/2009 + 3 dias… ou seja… 03/03/2009

public static void main(String ... args) { String s = "31/02/2009"; DateFormat df = new SimpleDateFormat ("dd/MM/yyyy"); df.setLenient (false); // aqui o pulo do gato try { System.out.println(df.parse (s)); // data válida } catch (ParseException ex) { System.out.println(ex); } } gera um erro: java.text.ParseException: Unparseable date: “31/02/2009”
pois essa data não existe

EDIT.: msg atrazada [