Verificando data independente de separador  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
otaviofcs
Virtual Machine Man
[Avatar]

Membro desde: 21/12/2006 18:01:54
Mensagens: 511
Localização: Rio de Janeiro
Offline

Pessoal,

Uma dúvida. Eu recebo um campo com uma data e quero verificar que a mesma está preenchida corretamente. Atualmente uso um SimpleDateFormat com uma máscara "dd/MM/yyyy". O problema é que eu quero aceitar também o formato "dd-MM-yyyy" sem fazer duas passagens.

Ou seja, eu queria uma passagem mais limpa que, por exemplo:



Escrevi esse código na mão só para ilustrar.

visite o blog da Riopro em:
http://blog.riopro.com.br

Aumente a capacidade de inovação na sua empresa usando o Zest:
http://zest.com.br

Conheça também:
http://votebolsa.com.br
[WWW]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Pesquisei um pouco aqui e fiz alguns testes, mas não consegui o efeito que deseja.

Uma solução alternativa a fazer duas passagens é fazer um replaceAll( "-", "/" ) na variável "data" antes de fazer o parse.

Former LIPE.
[ICQ]
luistiagos
GUJ Expert
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 3161
Offline


LIPE:
Uma solução alternativa a fazer duas passagens é fazer um replaceAll( "-", "/" ) na variável "data" antes de fazer o parse.


que gambiarra heim... mas realmente não vejo outra solução para isto a não ser esta gambi...




SCJP 1.5
SCJA 1.0
IBM DB2 Associate
[Email] [MSN]
otaviofcs
Virtual Machine Man
[Avatar]

Membro desde: 21/12/2006 18:01:54
Mensagens: 511
Localização: Rio de Janeiro
Offline

replaceall pode ser uma solução. Talvez o melhor seja em separar isso em um método pré avaliação do dado, para quando passar no SimpleDateFormat ser tudo ou nada de uma só vez.

Na verdade estou estudando para ver se tem como ignorar qual o caracter (vou tentar um ?).

obrigado....

visite o blog da Riopro em:
http://blog.riopro.com.br

Aumente a capacidade de inovação na sua empresa usando o Zest:
http://zest.com.br

Conheça também:
http://votebolsa.com.br
[WWW]
RaulCarlin
JavaEvangelist
[Avatar]

Membro desde: 20/05/2005 12:58:30
Mensagens: 389
Localização: São Paulo
Offline

Eu tentei aqui o #, o ? e nada...

Verifique a String inteira e pegue somente os digitos (Character.isDigit()) e crie uma nova String somente com os números e somente um pattern do tipo ddMMyyyy, acho que é melhor do que replace né...
[WWW]
otaviofcs
Virtual Machine Man
[Avatar]

Membro desde: 21/12/2006 18:01:54
Mensagens: 511
Localização: Rio de Janeiro
Offline

ao invés do replaceAll (que compara strings) optei pelo replace(char,char). com isso a performance não vai ser muito detonada e como as strings tem usualmente um tamanho máximo de 10 caracteres, não creio seja grave.

Tentei todos os tipos de wildcards no SimpleDateFormat e li o javadoc para ver se ajudava e nada. Considero-me vencido.....

visite o blog da Riopro em:
http://blog.riopro.com.br

Aumente a capacidade de inovação na sua empresa usando o Zest:
http://zest.com.br

Conheça também:
http://votebolsa.com.br
[WWW]
RaulCarlin
JavaEvangelist
[Avatar]

Membro desde: 20/05/2005 12:58:30
Mensagens: 389
Localização: São Paulo
Offline

Não se considere vencido, considere a API de datas do Java uma porcaria...
[WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team