2013-09-17 2 views
0

Календарь дает разные значения с одинаковыми данными. То есть,Календарь и часовые пояса. Ошибка

calT.setTimeZone(_.calc.ap.getTZ()); 
calT.setTimeInMillis(_.calc.ap.getCalMainTime()); 

calT.setTimeZone(timezonebase); 
calT.setTimeInMillis(curData.getTimeBase()); 

В другой части кода дает различные значения.

_.calc.ap.getTZ() и timezonebase одинаковы и они равны "Europe/Moscow" Время Millis для _.calc.ap.getCalMainTime() и curData.getTimeBase() одинакова и равна 568026000000L (1 Jan 1988 12:00 GMT+03:00)

Результат отличаются на один час: (1 Jan 1988 12:00 GMT+03:00) или (1 Jan 1988 13:00 GMT+03:00

Я думаю, что эта ошибка пробежала Россией удален DST два года назад. Но как исправить эту ошибку?

ответ

0

Я нашел одно уродливое решение. Может быть, кто-то нашел лучше. Повторно инициализировать календарь.

calT = Calendar.getInstance();

calT.setTimeZone (.calc.ap.getTZ()); calT.setTimeInMillis ( .calc.ap.getCalMainTime());

calT = Calendar.getInstance();

calT.setTimeZone (timezonebase); calT.setTimeInMillis (curData.getTimeBase());

Смежные вопросы