Pegar hora do celular, problema com horario de verão

Ola senhores,

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?

Agradeço
Ricoldi

Creio que resolvi o problema…

Calendar cal = Calendar.getInstance(TimeZone.getDefault());

Ai ele pega o padrão do aparelho seja quando (GMT-3) ou (GMT-2).

Para quem precisar…

Abraços…

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.

Do jeito ai que eu postei funcionou em um E63.

Agradeço a ajuda mestre. Abraços…

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?

ps: Ou o nome da região que vc quer claro!

Desculpe, mas tua dica não se aplica a celular.

A especificação é bem clara sobre o suporte a Timezones.

O único que é exigido de ser implementado pelos fabricantes é o GMT.

[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. :slight_smile: