Olá
Esse post é só uma dica para você que usa o SimpleDateFormat para converter String em Date.
Não sei por que razão (para falar a verdade também não pesquisei) mas o SimpleDateFormat não lança uma exceção quando passamos um data que não existe no calendário. Por exemplo 31 de setembro e 32 de setembro. Ele simplesmente converte para um dia do próximo mês.
Veja os exemplos abaixos:
[sourcecode lang=”java”]
SimpleDateFormat sdf = new SimpleDateFormat(“dd/MM/yyyy”);
System.out.println(sdf.parse(“30/09/2011”));
System.out.println(sdf.parse(“31/09/2011”));
System.out.println(sdf.parse(“32/09/2011”));
// Saídas
// Fri Sep 30 00:00:00 BRT 2011
// Sat Oct 01 00:00:00 BRT 2011
// Sun Oct 02 00:00:00 BRT 2011
[/sourcecode]
Dica do Tadashi:
Para validar a data use o método setLenient(false)
Dessa forma um ParseException será lançada!
Até mais,
Roberto
Olá Furutani,
Caso você quiser que o parse lance uma exception use o método ‘setLenient(true)’, dessa forma, o parse validará as datas inválidas e não vai deslocar os dias/meses/anos que forem informados a mais.