diferença de fuso horário android é de 1 hora a menos do que o esperado
O que eu preciso é de uma diferença horária entre o fuso horário específico ("Rússia / Moscou") e a hora local do usuário; a diferença deve ser em horas.
Tenho o problema de que a diferença de fuso horário às vezes é falsa calculada. Calculo a diferença (em horas) entre o deslocamento local para UTC do dispositivo Android e o deslocamento remoto para UTC. Para a maioria dos usuários, tudo bem. Mas muitos usuários estão reclamando do problema. Não consigo reproduzi-lo no meu telefone ou emuladores. A diferença de tempo exibida "incorreta" é de 1 hora a menos. Em Moscou são 15:00, na Europa 12:00. Mas o usuário vê o deslocamento de 2 horas aqui é o meu código.
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;