Разница часовых поясов Android на 1 час меньше, чем ожидалось

Что мне нужно, это разница во времени между конкретным часовым поясом («Россия / Москва») и местным временем пользователя, разница должна быть в часах.

Я сталкиваюсь с проблемой, что разница часовых поясов иногда неверно рассчитывается. Я рассчитываю разницу (в часах) между локальным смещением по UTC устройства Android и удаленным смещением по UTC. Для большинства пользователей это нормально .. но многие пользователи жалуются на проблему .. Я не могу воспроизвести ее на своем телефоне или эмуляторах. «Неправильная» отображаемая разница во времени всего на 1 час меньше. В Москве это 15:00, в Европе 12:00. Но пользователь видит смещение в 2 часа, вот мой код.

 String tz="Europe/Moscow"
 Calendar mCalendar = new GregorianCalendar();
 mCalendar.setTimeZone( TimeZone.getTimeZone(tz));
 TimeZone mTimeZone = mCalendar.getTimeZone();  
 int remote = mTimeZone.getRawOffset()/1000/60/60;

 Calendar mCalendar2 = new GregorianCalendar();
 TimeZone mTimeZone2 = mCalendar2.getTimeZone();  
 int local = mTimeZone2.getRawOffset()/1000/60/60;

 return local - remote;

Ответы на вопрос(1)

Ваш ответ на вопрос