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

6 respostas
ricoldi

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

6 Respostas

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…

P

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.

ricoldi

Do jeito ai que eu postei funcionou em um E63.

Agradeço a ajuda mestre. Abraços…

M

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!

P

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.

P

ricoldi:
Do jeito ai que eu postei funcionou em um E63.

Agradeço a ajuda mestre. Abraços…

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:

Criado 10 de dezembro de 2009
Ultima resposta 10 de dez. de 2009
Respostas 6
Participantes 3