Разница часовых поясов 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;