Problema ao pegar a hora no Windows vista

6 respostas
A

Olá pessoal,

Alguém saberia me dizer se tem algum metodo diferente para pegar a hora no windows vista. Eu fiz da seguinte maneira:

Calendar cal = new GregorianCalendar();
int hora = cal.get(Calendar.HOUR_OF_DAY); // pega a hora

Para o windows XP e linux este metodo funciona normalmente, já no windows vista ele me retorna 3 horas a mais. Por exemplo, se o horário do computador com o vista está 09:50, o método cal.get(Calendar.HOUR_OF_DAY) me retorna ‘12’, ja no xp e no linux retorna ‘9’.
Já conferi as configurações regionais, fuso horário, etc, mas aparentemente está tudo OK. Alguém poderia me ajudar?

[]´s
Aislan

6 Respostas

erickcellani

nunca mexi no windows vista cara…
mas tenho certeza que é o GMT!
veja se está configurado corretamente… se naum… da uma pesquisada para o java acertar isso para vc!

nós estamos no (GMT -03:00) Brasília

A

Erick,

Eu já conferi isso, está no (GMT -03:00) Brasília. Estou achando isso mto estranho… Quando eu descobrir alguma coisa, eu postarei no fórum.

Obrigado pela força!

erickcellani

ok… mas se eu naum me engano… tem um metodo que ajeita isso p/ vc!

vou pesquisar… quem achar primeiro posta ai! :smiley:

erickcellani

ja achei…

nunca usei isso… mas está na API

(eu uso a JDK 1.4)
http://java.sun.com/j2se/1.4.2/docs/api/java/util/GregorianCalendar.html

(1.5)
http://java.sun.com/j2se/1.5.0/docs/api/java/util/GregorianCalendar.html

ai ta dizeno… da uma olhada!

A

Valeu Erick,

Vou dar uma lida na API a respeito, mas eu tbem estou usando a classe Calendar() para pegar estas informações…

[]´s
Aislan

A

Erick,

Li a documentação da classe GregorianCalendar() e consegui resolver. A solução foi a seguinte:

String[] ids = TimeZone.getAvailableIDs(-3 * 60 * 60 * 1000);

//Fora a usar o fuso horrio de Braslia (GMT -3)
SimpleTimeZone pdt = new SimpleTimeZone(-3 * 60 * 60 * 1000, ids[0]);

//Cria uma instancia da classe Calendar(), passando o timezone no construtor da classe GregorianCalendar()

Calendar cal = new GregorianCalendar(pdt);

int hora   = cal.get(Calendar.HOUR_OF_DAY);

int minuto = cal.get((Calendar.MINUTE));
Criado 3 de maio de 2007
Ultima resposta 8 de mai. de 2007
Respostas 6
Participantes 2