2012-03-16 4 views
0

Я конвертирую текущую дату в GMT.GWT конвертирует текущую дату в GMT

Результат несовместим, из-за этого мои расчеты времени даты идут worng.

  DateTimeFormat df = DateTimeFormat.getFormat("dd MMM yyyy hh:mm:ss"); 
      String gmtStr = new Date().toGMTString().replace("GMT", "").trim(); 
      long deptime= depTime - df.parse(gmtStr).getTime(); 
      deptime = deptime/1000; 
      seconds = (deptime % 60); 
      minutes = (deptime % 3600)/60; 
      hours = (deptime/3600); 

ответ

2

Не уверен, что лучший способ, но вы можете использовать getTimezoneOffsert:

final Date gmtDate = new Date(); 
final Date offDate = new Date(gmtDate.getTime() + gmtDate.getTimezoneOffset() * 60 * 1000); 

offDate при отображении с DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_LONG) будет по-прежнему показывают смещение в UTC/GMT, потому что в основном вы должны создать новое время в текущем часовом поясе, но оно соответствует времени GMT, а длинное значение, возвращаемое с getTime(), будет числом миллисекунд, которое вы можете использовать в своих расчетах.