Horário de Verão

7 respostas
brunoneiva

Olá pessoal, sei que o problema de Horário de Verão em Java é bastante conhecido e inclusive encontrei algumas coisas na internet mas não consegui solucionar meu problema…

Minha aplicação pega dados (inclusive datas com hora, minuto e segundo) de arquivos e os coloca no banco de dados. Eu tou tendo problemas quando utilizo estas datas porque quando crio o objeto Date, quando elas se encontram entre o periodo de horário de verão, são adiantadas em uma hora.

Já fiz de tudo pra que esse horário de verão não seja setado e a uns meses até achei que tinha encontradoa solução, mas não. Anteriormente eu tinha usado a seguinte “solução”:

public static void formatSummerTime() {
        /* Formata o horário de verão para iniciar e terminar no mesmo dia
         * (01 de Janeiro às 1:00)
         */
        TimeZone.setDefault(
                new SimpleTimeZone(
                TimeZone.getDefault().getRawOffset(),
                "America/Recife",
                Calendar.JANUARY,
                01,
                0,
                3600000 * 1 + 60000 * 0, // 00h00
                Calendar.JANUARY,
                01,
                0,
                3600000 * 2 + 60000 * 0, // 01h00
                3600000));
    }

Porém não dá certo, no meu caso, defino uma certa data para 01/01/2006 - 23:59:59 e a data automaticamente vai para 01/01/2006 - 22:59:59. Já tentei utilizar TimeZone.setDefault(TimeZone.getTimeZone(“GMT-3:00”)); e acontece o mesmo.

Vi que existe uma ferramente (não sei bem se o é) chamada Javazic, ela faz isso pra mim? E sobre a Timezone Updater Tool

Outra coisa, não seria simples pra linguagem simplesmente ter um setDayLight(null), quando o usuário de Java quisesse setar o horário pra que não existisse? Existe uma maneira fácil de eu fazer isso?

Aguardo =)

[]'s

7 Respostas

brunoneiva

Ninguém? =(

blackfalcon

Espera mais um pouco cara, talvez alguem te ajude…

Sou iniciante ainda entao nao consigo te ajudar =/

Qualquer coisa, adiciona o msn do grupo e pergunta la pro pessoal, se eles souberem e tiverem desocupados ele te ajudarao :slight_smile:

Abraços

brunoneiva

hehehehe

é que tou muito mal acostumado aqui… geralmente pergunto alguma coisa, não dá 2 horas, alguém ja responde! =D

Tou aguardando =) Em outra lista de discussão, falaram pra eu dar uma olhada em outras API’s opensource que manipulam datas, uma vez que as de Java são bem problemáticas… tou dando uma olhada sobre isso!

blackfalcon

Entendo, tambem sou meio mal acostumado rsrs

Mas tenta no msn do grupo, acho que eles podem te ajudar la… :slight_smile:

Boa sorte ai com seu codigo.

Abraços

brunoneiva

Acho que solucionei a parada...

Me sugeriram fazer o seguinte:

SimpleTimeZone timeZone = new SimpleTimeZone(-3, "Meu timezone");

               TimeZone.setDefault( timeZone );

E tá dando certo =)

Finalizado =D

ViniGodoy

Se você usa muito datas, considere com muito carinho usar a biblioteca Joda-Time.
Ela é forte candidata a se tornar parte do Java num futuro próximo:
http://joda-time.sourceforge.net/

Muitas funções de cálculos de datas, complicadas com calendar, ficam triviais nessa biblioteca.

brunoneiva

Pow, irei dar uma olhada sim cara! Se é menos trabalhosa do que Calendar, com certeza darei uma olhada na API…

té mais! Valeu!

Criado 20 de junho de 2008
Ultima resposta 21 de jun. de 2008
Respostas 7
Participantes 3