Validação de data no formato DD/MM/AAAA

Pessoal, Boa tarde.

Como validar uma data digitada no formato DD/MM/AAAA?

Grato.

Boa Tarde, há várias maneiras de se fazer uma validação, isso depende de que ambiente está usando…
Vai validar o que?
Web? Desktop?

flw.

De uma pesquisada antes… só aqui no GUJ deve ter “N” formas de fazer…

de uma olhada neste artigo.

http://www.guj.com.br/article.show.logic?id=8

Pessoal,

Ainda continuo querendo saber como validar data.
As respostas nenhuma resolveram.

Dá uma olhada em SimpleDateFormat.

Trate ParseException no momento que você estiver “parseando” a data.

Boa sorte.
Abraços!

Pode ser assim.


SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy");
String dataFormatada = data.format( "Aqui voce passa sua data" );

//O parametro deve ser um objeto do tipo Date ou Calendar usando o getTime

:smiley:

[quote=fmad27]Pode ser assim.


SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy");
String dataFormatada = data.format( "Aqui voce passa sua data" );

//O parametro deve ser um objeto do tipo Date ou Calendar usando o getTime

:D[/quote]

Cara, acho que dessa forma ele não vai validar nada… se o parâmetro já estiver no formato Date ou Calendar ele já será efetivamente um Date ou um Calendar. :wink:

Acho que ele deveria fazer algo como isso aqui:

SimpleDateFormat sdfEntrada = new SimpleDateFormat("dd/MM/yyyy");
try {
  Date data = sdfEntrada.parse(String);
} catch (ParseException e) {
  System.out.println("Favor digitar a data no formato informado.");
}

Onde String contém a data a ser validada

Pessoal,

Gostaria que vocês testassem antes de enviasr.
As soluções não funcionam.
Se eu coloco data “123/456/7890” é aceito sem problemas.

Tá bom… vamos lá.

A primeira coisa é que você precisa usar setLenient (false).

http://www.guj.com.br/posts/list/119856.java

A segunda coisa é que mesmo com setLenient você precisa saber se o ano obtido é inválido para o que você quer. A data “03/02/0009”, que é dois anos depois de Jesus Cristo ter pregado aos Doutores da Lei, é válida para você?
A data “03/02/7890”, onde provavelmente eles estarão começando a pensar em substituir algumas das aplicações Cobol que já estão rodando há milhares de anos, é válida para você?
Se não forem válidas, você precisa pegar o ano e ver se é muito ou pouco para você.

Acrescente

sdfEntrada.setLenient(false);

Agora, você poderia (e deveria) ser mais gentil. Não é a obrigação de ninguém aqui te ajudar. Ainda mais com dúvidas que com uma pesquisadinha de leve na API resolveria.

As pessoas aqui, na maioria, estão em seu local de trabalho e dedicam parte do seu tempo ajudando quem está começando.

Boa sorte.