Pessoal, estou fazendo gerando uma string com timestamp de um campo data onforme o codigo abaixo, porém a data do objeto e a data da string resultante estão diferentes, sempre com uma hora de diferença… alguém sabe o que posso fazer ?
Ex: Data do Objeto: Mon Nov 16 11:03:52 BRST 2009
Data da String: 20091116100352
Dados: o objeto é um arquivo serializado, criado em um pc com as configrações regionais Ingles (Estados Unidos)
A execução do código abaixo, ocorre em um servidor Unix.
se voce só jogou uma data lá no objeto então é natural isso!
nel
Bom dia.
Bem, se realmente está ocorrendo um parser com diferença de uma hora e você queira resolver isto, você pode utilizar o Calendar, não é verdade? Nele você seta a data que já possui e pega a hora e diminui -1, depois retorna a data novamente e ai sim faz o parser para String.
Cara, o jeito que vc tah fazendo acho que tah certo.
Parece que o problema eh no BRST (Brazilian Summer Time), horário de verão que deve tah configurado na máquina. Tenta desabilitar e ve se continua dando diferença.
Postaram algo parecido aqui no GUJ esses dias mas não to achando.
Acho que tem a ver.
K
kozak
Pois é gente, eu estou achando que está bem próximo do que o Foxlol está dizendo mesmo, mesmo porque este código executa em mais de um servidor, e as vezes não distorce a data, (por isto não me adianta usar o calendar para adicionar uma hora)
E este comportamento se iniciou apos a mudança de horario de verão mesmo.
So para ficar mais claro… o Date já existe, ele está em um objeto serializado. O problema está sendo no parser para estrair em um formato determnado.
So não consigo testar o BRST porque isto roda em servidores unix, e aí foge da minha alçada pois tem outras aplicações lá e não posso meter a mão…
Foxlol
kozak:
Pois é gente, eu estou achando que está bem próximo do que o Foxlol está dizendo mesmo, mesmo porque este código executa em mais de um servidor, e as vezes não distorce a data, (por isto não me adianta usar o calendar para adicionar uma hora)
E este comportamento se iniciou apos a mudança de horario de verão mesmo.
So para ficar mais claro… o Date já existe, ele está em um objeto serializado. O problema está sendo no parser para estrair em um formato determnado.
So não consigo testar o BRST porque isto roda em servidores unix, e aí foge da minha alçada pois tem outras aplicações lá e não posso meter a mão… :(
Aí complica mesmo, pq a data deve estar vindo de uma maquina não configurada para horario de verão e o parser sendo feito em uma que está.
Creio que ambas deveriam estar sincronizadas nesta configuração para evitar isso.
Ou achar algum meio de fazer o BRST não influenciar o parser.
Legal Foxlol vou fazer o seguinte… vou tentar passar um código isolado para o unix so para reproduzir o erro… depois se conseguir eu aplibo o setTimeZone… !
K
kozak
Então gente… está parecendo ser problema de ambiente mesmo
A máquina unix esta com GMT -3 e nesta situação ocorre a divergência de horario
Executando o teste com um usuário que está setado com GMT-2 não ocorre o erro.
Peguei uma máquina que estava com GMT-2 e estava com erro, fiz um restart de VM e o erro não ocorreu mais. Acho que elanão tinha carregado o TZ.
Vou tenar um restart nas que restaram.
K
kozak
Gente descobri o problema…
Uma outra aplicação, que roda sob a mesma JMV estava executando um TimeZone.setDefault alterando o horário da JVM.
Isolada a aplicação em outra VM, até corrigirem o código, ficou resolvido o problema.