Problema com horário de verão

3 respostas
E

Mesmo o Windows local estando com o relógio correto (ex. 17:15), ao subir o WSAD ou o Eclipse o servidor local acaba considerando a hora atual com uma hora de atraso e isto está causando um problema nas comparações com os dados vindos de outra máquina. Alguém já passou por isso?

3 Respostas

italo.vendrameto

Pior que esse problema é comum hehehe
ano passado acabamos fazendo uma “Solução cirativa de Programação” (Gambiarra) para contornar o problema, mas pesquisando um pouco eu achei alguns artigos que podem ajudar

http://www.javafree.org/javabb/viewtopic.jbb?t=12070

E

Obrigado pelo artigo!

Como solução rápida mudamos o fuso horário do Windows para Buenos Aires e funcionou. Pelo menos para testar localmente e não ficar parado já está valendo.

Pilantra

Cara, eu fiz um metodo para esse problema:

/**

     * Metodo que pega a hora correta contando como horario de verao

     * @return Retorna a data e hora corretas com o horario de verao

     * @version 1.0

     * @author Anderson

     */

    public String HorarioVerao() {

        String retorno = "";

        

        // Cria uma TIME ZONE correspondente ao horário de Brasília

        SimpleTimeZone pdt = new

            SimpleTimeZone(-3 * 60 * 60 * 1000,"GMT-3:00");



        // Seta as regras para o horário de verão Brasileiro

        // Começando no primeiro domingo após o dia primeiro

        pdt.setStartRule(Calendar.OCTOBER, 1, Calendar.SUNDAY,0);



        // Terminando no último domingo do mês de Fevereiro

        pdt.setEndRule(Calendar.FEBRUARY, -1, Calendar.SUNDAY,0);



        // Instanciando um GregorianCalendar com com a timezone de BSB

        // e levando em consideração as regras do horário deverão.

        Calendar dataHoje = new GregorianCalendar(pdt);

        

        // Retorna a data e hora

        retorno = dataHoje.get(dataHoje.DATE) + "/" + (dataHoje.get(dataHoje.MONTH) + 1) + "/" 

            + dataHoje.get(dataHoje.YEAR) + "  "

            + dataHoje.get(dataHoje.HOUR_OF_DAY) +":" + dataHoje.get(dataHoje.MINUTE) + 

            ":" + dataHoje.get(dataHoje.SECOND);

        

        // Cria um formatador

        SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy  HH:mm:ss");

        

        // Formata a data e a hora

        try {

            java.util.Date data = formatador.parse(retorno);

            retorno = formatador.format(data);

        } catch (ParseException ex) {

            ex.printStackTrace();

        }

        

        return retorno;

    }

Se você fizer um esquema com o banco de dados ou xml, fica melhor porque você não precisa recompilar todo ano. É que eu to com preguiça de implementar isso agora no meu sistema heheh.

FLw

Criado 17 de outubro de 2007
Ultima resposta 17 de out. de 2007
Respostas 3
Participantes 3