| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2009 15:33:41
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Acho que você tem de testar primeiro o "dd/MM/yy" e depois o "dd/MM/yyyy".
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2009 16:35:57
|
ramilani12
GUJ Master
![[Avatar]](/images/avatar/b597460c506e8e35fb0cc1c1905dd3bc.png)
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
|
Uma opção crie uma expressão regular para validar se a data esta no formato requerido por exemplo:
Validar este formato: dd/MM/yyyy
Fica a seu critério ...
|
my delicious| follow me| linkedin |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/03/2009 08:56:00
|
eberson_oliveira
JavaGuru
![[Avatar]](/images/avatar/b0074757eb8e629f5a4c89a4b40b277e.jpg)
Membro desde: 16/01/2008 10:18:17
Mensagens: 206
Localização: Matão - SP
Offline
|
thingol wrote:Acho que você tem de testar primeiro o "dd/MM/yy" e depois o "dd/MM/yyyy".
Olá thingol,
Fiz o teste que vc sugeriu e funcionou... sabe dizer porque não lançou exception quando mandei a data no formato "errado"?
ramilani12 wrote:
Uma opção crie uma expressão regular para validar se a data esta no formato requerido por exemplo:
Validar este formato: dd/MM/yyyy
Olá ramilani12,
Gostei do formato por expressão regular.. no entanto, como faço para contemplar algo desse tipo: "MM/dd/yyyy" e "dd/MM/yyyy"?
tem alguma idéia?
[]s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/03/2009 09:29:46
|
ramilani12
GUJ Master
![[Avatar]](/images/avatar/b597460c506e8e35fb0cc1c1905dd3bc.png)
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
|
Oras, é só inverter a expressão:
1º Exemplo: valida se o formato está dd/mm/yyyy
2º Exemplo valida se está neste formato: mm/dd/yyyy
(0[1-9]|[1-2][0-9]|3[0-1]) -> Aqui valida o dia com as seguintes ocorrências : 01 , 17 ou 31
(0[1-9]|1[0-2]) -> Aqui valida o mês com as seguintes ocorrências: 01 , 09 , 10 até 12
\\d{4} -> Valida o ano 2009 , 2010 com tamanho limitado a 4, bom ira demorar um pouco até chegarmos no ano de 20001
|
my delicious| follow me| linkedin |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/03/2009 12:14:36
|
eberson_oliveira
JavaGuru
![[Avatar]](/images/avatar/b0074757eb8e629f5a4c89a4b40b277e.jpg)
Membro desde: 16/01/2008 10:18:17
Mensagens: 206
Localização: Matão - SP
Offline
|
ramilani12 wrote:Oras, é só inverter a expressão: 1º Exemplo: valida se o formato está dd/mm/yyyy 2º Exemplo valida se está neste formato: mm/dd/yyyy (0[1-9]|[1-2][0-9]|3[0-1]) -> Aqui valida o dia com as seguintes ocorrências : 01 , 17 ou 31 (0[1-9]|1[0-2]) -> Aqui valida o mês com as seguintes ocorrências: 01 , 09 , 10 até 12 \\d{4} -> Valida o ano 2009 , 2010 com tamanho limitado a 4, bom ira demorar um pouco até chegarmos no ano de 20001
Entendi o que disse, mas como faço pra saber o formato da seguinte data: "12/12/2002", é "dd/MM/yyyy" ou é "MM/dd/yyyy"? Vou colocar a classe... assim fica mais fácil de entender o meu contexto: Entende o que estou tentando explicar... não sei como fazer pra tratar essas situações... []s
This message was edited 1 time. Last update was at 18/03/2009 12:27:11
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/03/2009 14:23:03
|
LedRenan
Debugger
Membro desde: 13/05/2007 16:54:48
Mensagens: 72
Offline
|
Entendi o que disse, mas como faço pra saber o formato da seguinte data: "12/12/2002", é "dd/MM/yyyy" ou é "MM/dd/yyyy"?
Eu também estou com este mesmo problema. Não sei como identificar se o que está vindo é dia ou mês...Alguém tem alguma idéia???
Abs
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/03/2009 14:30:40
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
12/11/2009 é 12 de novembro de 2009 ou 11 de dezembro de 2009?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/03/2009 14:40:01
|
eberson_oliveira
JavaGuru
![[Avatar]](/images/avatar/b0074757eb8e629f5a4c89a4b40b277e.jpg)
Membro desde: 16/01/2008 10:18:17
Mensagens: 206
Localização: Matão - SP
Offline
|
thingol wrote:12/11/2009 é 12 de novembro de 2009 ou 11 de dezembro de 2009?
Depende do formato...
Eu estava seguindo o exemplo que me passou... depois resolvi fazer um teste com ER, mas acho que não vai funcionar, pois não tenho como responder a sua pergunta sem saber o formato da data e acho que não conseguirei descobrir pelas expressões... correto?
Sabe dizer pq o setLenient não lançou excessão quando testei "01/12/08" no formato "dd/MM/yyyy"?
Não sei se ajuda, mas o meu java é o 4, a minha solução precisa ser em java 4.
[]s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/03/2009 15:53:52
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Em Java 1.4 é possível usar expressões regulares (ufa!). De fato, não tinha testado que mesmo com setLenient (false) o DateFormat aceita xx/xx/xx ou xx/xx/xxxx. Argh.
Bom, como há uma ambiguidade para várias datas - 11/12/2009 (11 de dezembro ou 12 de novembro?) nem sempre é possível determinar se o formato é dia/mês/ano ou mês/dia/ano, portanto é bom ver se você pode tratar isso de outra maneira.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/03/2009 17:06:33
|
ramilani12
GUJ Master
![[Avatar]](/images/avatar/b597460c506e8e35fb0cc1c1905dd3bc.png)
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
|
De onde vem essas datas?, vc nao poderia padronizar estes dois formatos na origem.
Origem entenda onde é criada a data.
|
my delicious| follow me| linkedin |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/03/2009 17:10:32
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Outra coisa que é bem ambígua é você pegar um campo numérico e ver se o tal número representa um CPF ou CNPJ. Verifiquei que para 1/9 dos números, tanto os dígitos de verificação do CPF quanto os do CNPJ são compatíveis, então não é suficiente chutar que um número é um CPF se os dígitos de verificação do CPF baterem mas não os do CNPJ.
|
|
|
 |
|
|