Boa tarde…
Gostaria de sabe:
Como verificar se uma determinada data digitada é válida ou não?
Grato.
Claudio
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 [