Date Exception

Oi gente poderiam me ajudar com um negócio?
Tenho um metodo que recebe um string no formato dd/mm/aaaa e tranformo em calendar…porém… se a string vem com uma data qua não existe, por exemplo 29/13/2009 nada acontece. Que excessão poderia usar?Na verdade a excessão ocorreria na hora da conversão para calendar certo?

Valeu!

Se não ocorre excessão no momento do parser (neste caso) use o método split da string e verifique se o dia é maior 31 e/ou mês maior que 12 e lance uma excessão.
Abraços.

Antes da conversão, faça:

seuCalendar.setLenient(false);

Ele é que permite que datas inválidas (como 31/02) sejam automaticamente convertidas para datas válidas (como 02/03).

Imagine, recebi a string dataStr

Calendar cal = Calendar.getInstance();

SimpleDateFormat format = new SimpleDateFormat(“ddMMyyyy”);
java.sql.Date data = new java.sql.Date(format.parse(dataStr).getTime());
cal.setTime(data);

Será q um bloco try catch não resolve?

Valeu!

Calendar cal = Calendar.getInstance();

SimpleDateFormat format = new SimpleDateFormat("ddMMyyyy");
format.setLenient(false); //IMPORTANTE: Sem isso não dá erro.
java.sql.Date data = new java.sql.Date(format.parse(dataStr).getTime());
cal.setTime(data);

Cara… deu certo…

Valeu!

:slight_smile: