Quando, na minha máquina, são 14:53 mesmo. Na primeira linha o resultado é extamente o que eu quero, apesar de a gente estar em GMT-3 dá só duas horas de diferença por causa do horário de verão, mas o Date que eu imprimi usando gc.getTime() está apresentado o horário local. Ele não deveria representar o horário no GMT+0 também?
É esse mesmo o jeito certo de se obter um objeto Date que represente o horário de um fuso diferente?
Quando, na minha máquina, são 14:53 mesmo. Na primeira linha o resultado é extamente o que eu quero, apesar de a gente estar em GMT-3 dá só duas horas de diferença por causa do horário de verão, mas o Date que eu imprimi usando gc.getTime() está apresentado o horário local. Ele não deveria representar o horário no GMT+0 também?
É esse mesmo o jeito certo de se obter um objeto Date que represente o horário de um fuso diferente?
Aham, o objeto java.util.Date não guarda a informação de fuso horário dentro dele; ele tenta (pelo menos tenta, ele depende do que obteve do sistema operacional) guardar sempre como UTC. É na hora de imprimir que o toString() pega o fuso horário default e imprime (por exemplo, na sua máquina, como BRST = Brazil SummerTime)
J
jau
Entendi.
Então não dá pra eu fazer nada na apliacação que eu estou desenvolvendo mesmo. Eu queria passar em UTC, mas dando um new Date() eu já faço isso então.
O pau deve estar no outro cliente ou no banco (a minha aplicação grava a data no BD e aparece errado num outro cliente que não fui eu que fiz).
Valeu!!! Brigadão e abraço!
T
thingol
Só para você entender o que é que dá para fazer, aqui está um exemplo.
importjava.util.*;importjava.text.*;classTest186{publicstaticvoidmain(String[]args){DateFormatdf=newSimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");df.setTimeZone(TimeZone.getTimeZone("GMT+00:00"));System.out.println(df.format(newDate()));}}