Nunca tinha me atentado para essa questão, já que eu pouco me utilizava da hora do celular (Sempre do servidor), porem agora percebi que o método que uso não fica direito no horario de verão (A hora no celular esta certa, mas no método não).
public static int[] getHoraAtual() {
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT-3:00"));
int horas = cal.get(Calendar.HOUR_OF_DAY);
int minutos = cal.get(Calendar.MINUTE);
int segundos = cal.get(Calendar.SECOND);
return new int[]{horas, minutos, segundos};
}
Já que ele tem que tirar “2” e não “3” durante o horario de verão.
Pergunto:
Alguem sabe como eu pego a hora certa independente de horario de verão ou não?
Olha o que eu posso te dizer é que existem vários meios de vc pegar a data e hora, mas pode acontecer da implementação Java fornecer a hora errada para a aplicação mesmo o celular estando com a hora certa. Isto acontece em Nokias.
Já passei por este caso onde a aplicação sempre lia a hora com um offset de 1 hora a menos do era exibido na tela e não houve solução para isto. O que fizemos foi adiantar em 1 hora o celular para exibir errado na tela mas a aplicação java ter a hora correta.
Se vc quer a hora levando em conta o horario de verão da região use TimeZone.getTimeZone(“America/Sao_Paulo”). Usar GMT-3:00 realmente não tem como saber se existe horario de verão a ser aplicado ne?
[quote=ricoldi]Do jeito ai que eu postei funcionou em um E63.
Agradeço a ajuda mestre. Abraços…[/quote]
Torça para você não ter este problema, pois alguns modelos da Nokia podem apresentar o problema. Após alguns ajustes nas partes de configuração de data e hora, o celular fica doidinho e não há cristo que faça ele voltar a operar normalmente. Como saída o único jeito é usar o macete que citei acima.
É o tipo de conhecimento que não está registrado no Wiki da Nokia mas que gente como nós que coloca a mão na massa sabe que existe e se há ou não workaround para isto.