GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

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


#1

Pessoal, Boa tarde.

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

Grato.


#2

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.


#3

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


#4

Pessoal,

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


#5

Dá uma olhada em SimpleDateFormat.

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

Boa sorte.
Abraços!


#6

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:


#7

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


#8

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.


#9

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ê.


#10

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.


#11