Dúvida básica sobre DATA

Aew galera…

É bem simples, mas to quebrando a cabeça…

Como VALIDAR uma data que o usuário digite… Tipow… ele vai digitar dd/MM/yyyy, como validar se ele realmente digitou uma data nesse formato??

Valeu!! :smiley:

Faca assim:

try {
String data = request.getParameter(“data”);
objeto.setData(data); // setData() é um metodo do tipo String
Locale locale = new Locale (“pt”, “BR”);
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
objeto.setDate( df.parse(objeto.getData()) );
//setDate() é um metodo do tipo Date
}
catch(ParseException){
capture a excecao e a devolva para o usuario
}

Você pode tentar algo assim:

try {
java.text.DateFomrat df = new SimpleDateFormat"dd/MM/yyyy");
java.util.Date myDate = df.Parse(strDate);
} catch(ParseException pe) {
// Solta aviso de que a data está em formato irregular.
}

Para mais detalhes olhe na API.

Boa Sorte,

Valeu… mas…

Leo.dep, não entendi seu código… num tem como só passar um exemplo da parte de validação de data??

Rafael, era exatamente o que eu tinha feito, agora digita a seguinte data: 999/0/2003… de acordo com seu código ela é válida… Porque ele faz um PARSE e transforma isso numa data válida…

Vamu lá povo… eu sei que vocês são feras… mas alguém se candidata a me ajudar?? :smiley:

Será que isso vai ter que ir pro Java Avançado!?!?!??!?!

EStive dando uma olhada na API do DateFormat. Tente usar o método setLenient(false);

Cara o proprio ParseException verifica se a data é valida ou nao!!!

Quando você parsea uma data e esta é por exemplo, 32/01/2004 esta irá transformar-se em 01/02/2004, ou seja, há uma transformação em long e depois novmaente para String.

Isso se vc nao setar a opcao:

setLenient(false)

Como a danada vem true como default e ninguem le a documentacao ( quase ninguem :smiley: ) as pessoas as vezes tem problemas solicionar problemas nao tao complicados com Data !