Dúvida básica sobre DATA

8 respostas
Leandro

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:

8 Respostas

L

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

}
Rafael_Afonso

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,

Leandro

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:

Leandro

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

Rafael_Afonso

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

L

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

hmichel

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.

aborges

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 !

Criado 12 de junho de 2003
Ultima resposta 12 de ago. de 2004
Respostas 8
Participantes 5