Problema com Timezone - campo data  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
ignacio83
Java Ninja
[Avatar]

Membro desde: 16/03/2007 10:46:06
Mensagens: 253
Localização: São Paulo
Offline

Pessoal, estou passando por um problema com relação ao Timezone:

Banco de Dados: Oracle 10g
Servidor de Aplicação: JBoss 4.2.3
JVM: 6.0 update 13

Existe um campo data_nascimento na tabela clientes no banco de dados que é do tipo DATE.

Para algumas datas específicas quando consultamos esse campo no banco de dados a data vem com uma hora a menos, ou seja, ao invés de 01/11/1966, recebo 31/10/66 23:00.

Descobri que isso ocorre para todas as datas onde o horário de verão começou...

Executem o seguinte código:



Reparem que a hora 00:00 do dia 01/11/1966 não existe (realmente nunca existiu, afinal a zero hora, o relógio foi adiantado em uma hora), portanto Java automaticamente assume 01:00 no calendar.

E quando subtraimos um hora, voltamos para o dia 31/10/1966

Os timezones de todos os servidores envolvidos estão com BRST (Brazilian Summer Time)

O que eu ainda não consegui entender é porque recebo uma hora a menos do banco de dados, e não uma hora a mais como acontece no teste acima.

Tentivas frustadas:
- Atualizar o driver de acesso ao banco
- Atualizar a JVM
- Trocar o tipo do campo para java.sql.Date
- Trocar o tipo do campo para java.sql.Timestamp
- Trocar o tipo do campo para java.util.Date

Funciona porém causa outros efeitos colaterais:
- Alterar o timezone para UTC.

A pergunta é: Como posso resolver esse problema?

André de Fontana Ignacio
[MSN]
fabioqb
What is classpath?
[Avatar]

Membro desde: 03/05/2009 14:26:48
Mensagens: 8
Offline

Cara, faz o seguinte:



Tive um problema parecido onde tive que forçar o TimeZone em validação (veja em http://blog.faque.com.br/).

Fábio Queiroz
http://blog.faque.com.br
http://www.twitter.com/fabioqb
[WWW]
ignacio83
Java Ninja
[Avatar]

Membro desde: 16/03/2007 10:46:06
Mensagens: 253
Localização: São Paulo
Offline

Opa, vlw pela resposta...

Mas o código que eu postei foi apenas para teste... Mais já tentei isso e também não funcionou...

Na realidade recebo um Date do banco de dados...

André de Fontana Ignacio
[MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team