Relógio tá certo new Date() retorna hora errada

16 respostas
W

Oi pessoal, será que alguém sabe o que ocorre?
Estou usando o seguinte código para recuperar a data e hora atuais e posteriormente gravar no banco. A persistência está ok,mas a data recuperada pelo new Date() mostra 2 horas a menos.

Date date = new Date(System.currentTimeMillis()); System.out.println("Data = " + date);
Resultado no console
[color=red]Mon Sep 22 15:53:32 ACT 2008[/color]

A hora mostra 15:53:32, mas era 17:53 pelo relógio do windows.
Já tentei olhar nas API´s Calendar, Locale, TimeZone, mas não descobri porque está trazendo a hora com 2 horas de atraso.
Agradeço qualquer idéia.

16 Respostas

R

tentou olhar o setup da sua placa mãe?

F

A aplicação tá rodando na mesma máquina em que você trabalha?

T

Em que país você está desenvolvendo seu sistema? ACT = Australian Capital Time.

http://wwp.greenwichmeantime.com/time-zone/australia/time-zones/eastern-standard-time/

W

Pessoal, eu rodei o código que postei na própria máquina, no trabalho. O relógio no canto inferior direito mostra o horário de Brasília, mas ao rodar o código pelo eclipse, o resultado são 2horas a menos. Deveria ser o horário que está na máquina correto?
Eu rodei o mesmo código na minha máquina em casa e mostrou o horário correto, ou seja, o que está mostrando no relógio do windows.
O que quero saber é se tem alguma configuração que a classe Date está pegando que não é a correta, o problema é que não sei como verificar isso.
Será que tem alguma coisa a ver por estar em ambiente de rede? Será que está pegando um outro horário que não seja o da minha máquina?
Obrigado.

T

Eu não estou perguntando se o relógio está mostrando o horário de Brasília. Estou perguntando que fuso horário está configurada a sua máquina, e outra coisa que você pode olhar no Eclipse, que é o fuso horário do Java (não sei exatamente onde é que é, mas é no menu de Help, e é o mesmo valor da System property (“user.timezone”) (veja http://www.mindspring.com/~mgrand/java-system-properties.htm ) .
Normalmente ele deveria aparecer como “America/Sao_Paulo” ou coisa parecida; veja se não está configurado como “Australian Central Time” ou outra coisa mais aberrante ainda.

W

Oi thingol, não precisa ficar nervoso, eu só estava sendo bem detalhista para que ficasse bem entendido o que estava ocorrendo.
Eu realmente não consegui descobrir se o eclipse está pegando outro fuso horário, ou se o código roda pegando o horário de outra máquina que esteja com horário diferente.
Eu estou usando o eclipse Ganymede, será que ele é configurado para outro fuso horário ou algo parecido ou nada a ver?
Vlw.

T

Acho que é em Help -> About -> e em algum lugar onde se indica as propriedades do sistema.

Não sei assim de cor, que não estou com o Eclipse aqui.

Se não achar de jeito nenhum, escreva um programa, mais ou menos como este aqui, e veja qual o valor de "user.timezone".

class Teste {
    public static void main(String[] args) {
        System.out.println (System.getProperty ("user.timezone"));
    }
}
W

Veja só, rodando o código que vc falou mostrou o seguinte:
America/Rio_Branco

Indo em help>about Eclipse Platform>Configuration Detail, mostra o seguinte:
user.timezone=America/Caracas
Mas não consigo mudar para America/Sao_Paulo
Vou continuar tentando, caso tenha alguma idéia de como mudar isso, te agradeço,
abs

T

Caracas? Muito estranho. Acho que é por isso que você está com essa configuração toda zoada.

Em último caso, você pode editar o arquivo eclipse.ini (que fica no diretório-raiz do Eclipse) para que um parâmetro (-Duser.timezone=America/Sao_Paulo ) seja passado.

http://wiki.eclipse.org/Eclipse.ini

Por exemplo,

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vm
C:\Java\JDK\1.5\bin\javaw.exe
-vmargs
-Xms40m
-Xmx512m
-Duser.timezone=America/Sao_Paulo
M

Winthorp:
Veja só, rodando o código que vc falou mostrou o seguinte:
America/Rio_Branco

Indo em help>about Eclipse Platform>Configuration Detail, mostra o seguinte:
user.timezone=America/Caracas
Mas não consigo mudar para America/Sao_Paulo
Vou continuar tentando, caso tenha alguma idéia de como mudar isso, te agradeço,
abs

Rio Branco = Capital do Acre = 2 horas de diferença pro horário de Brasília.

W

Então MiltonBastos, essa parte eu entendi, mas não sei como mudar para America/Sao_Paulo, tem alguma idéia?
Eu vou tentar baixar outro tipo de eclipse, pois testei na máquina de um colega e o horário estava normal.
vlw

W

Eu também tentei fazer o que o thingol disse:

Caracas? Muito estranho. Acho que é por isso que você está com essa configuração toda zoada.

Em último caso, você pode editar o arquivo eclipse.ini (que fica no diretório-raiz do Eclipse) para que um parâmetro (-Duser.timezone=America/Sao_Paulo ) seja passado.

Acrescentei a linha no final do eclipse.ini
-Duser.timezone=America/Sao_Paulo

Mas não deu certo.

W

Descobri o problema. Minha máquina estava acessando vários perfis de usuário e o eclipse estava pegando um outro usuário que provavelmente estava com configurações de horário erradas.
Vlw a todos.

T

É como diria meu colega - Caracas!

W

rsrs Pode crer.

S

gostaria de compartilhar minha experiencia hj, tb amanheceu marcando fuso horario de caracas no eclipse, a unica coisa que aconteu foi atualizacao do windows, por algum motivo mudou o fuso horario do JAVA, mas nao o do windows, entao mudei meu fuso horario pelo windows apliquei e voltei para o antigo(brasilia) e entao o eclipse pegou o fuso horario certo

abraco

Criado 22 de setembro de 2008
Ultima resposta 21 de jan. de 2009
Respostas 16
Participantes 6