Problema com Default TimeZone

2 respostas
I

Fala pessoal, blz?

Eu estou com uma aplicação que deve rodar determinada tarefa conforme o horário que ela foi programada.
O problema é que na minha aplicação, ele sempre pega o horário GMT (3 horas de diferença) e eu não consigo configurar
para pegar o horario do sistema ou de Brasília.

Já tentei utilizar:

[i]TimeZone tz = TimeZone.getTimeZone("America/Sao_Paulo");
     Calendar gc = new GregorianCalendar();

     gc.setTimeZone(tz);

     System.out.println(gc.getTime());[/i]

mas não funciona, ele sempre traz o horario padrão.

O engraçado é que no Eclipse, se eu faço o teste com o System.currentTimeMillis ele traz o horario do sistema do jeito que eu preciso.
Já no Netbeans, ele traz o horário GMT, e eu não consigo mudar isso.

Utilizando o GregorianCalendar também não dá certo, ele também traz o GMT, como se fosse o padrão mesmo.

Espero que possam me ajudar.

Obrigado.

Abraços!

2 Respostas

danilo.coppi

Utilize:

TimeZone.getDefault();

que ele pegará o timezone da máquina que estiver rodando o java…

I

Então Danilo, o default dele é o GMT
quando eu configurava o timezone do calendar para America/Sao_Paulo ele trazia o TimeZone correto, mas não o horário.

Eu resolvi o problema.
Pelo que verifiquei, o método getTime() traz sempre o horario GMT, ignorando o TimeZone que você configurar.

Então, no meu caso eu utilizei :

gc.get(GregorianCalendar.HOUR_OF_DAY);
gc.get(GregorianCalendar.MINUTE);

Assim ele traz a hora e os minutos baseando-se no TimeZone definido.

Mas valeu a dica Danilo.

Abraços.

Criado 8 de abril de 2011
Ultima resposta 11 de abr. de 2011
Respostas 2
Participantes 2