Espero que isso te ajude amigo, pois o código abaixo solucionou o problema que tinhamos com horário de verão no servidor. Colocamos ele em um JSP que é chamado quando o sistema é iniciado na VM e os problemas de horário de verão terminaram. (detalhe: mesmo que mude a hora do windows e o timezone depois que a VM é startada ela ignora a hora e o timezone do windows hehehe).
 
    TimeZone timezone = TimeZone.getTimeZone("GMT-03:00"); //isso cria um timezone padrão
    TimeZone.setDefault(timezone); // seta a VM para usar esse timezone ignorando o do windows

Fizemos isso pois o sistema é muito antigo e usa new Date() para pegar data e hora. Com o problema de horário de verão imagina as gambiarras que faziamos no windows para que não tivesse problema com o servidor de banco de dados (que tinha procedures e etc usando a hora do banco de dados).
 
Caso altere a hora e ou o timezone do windows e você quizer que isso se reflita em sua aplicação, basta reiciniar o servidor web (caso seu sistema seja web). Ele pega a hora do sistema no momento que a vm é startada, após o código acima ele ignora qualquer alteração feita no horário do windows.
 
Marcos Tadeu Puntel Vargens
 
----- Original Message -----
From: MarcoJava
Sent: Tuesday, October 22, 2002 10:36 AM
Subject: Re: [java-list] Data

Alex
 
Voce pode utilizar o comando abaixo para setar o time zone na linha de comando:
 
Para GMT-3 (antes e depois do horário de verão)
java -Duser.timezone=GMT-3   weblogic.Server
 
Para GMT-2 (durante o horário de verão)
java -Duser.timezone=GMT-2  weblogic.Server
 
[]´s
Marco Zerbini

 

----- Original Message -----
From: Alex Gauna
Sent: Friday, October 18, 2002 5:35 PM
Subject: [java-list] Data

Pessoal,
 
estou com o seguinte problema com a data a partir do dia 13/10/2002.
a data passa para GMT -02:00, alem do dia 13 voltar para 12, gostaria de saber como fazer para isso nao acontecer
Segue o codigo abaixo como exemplo:
 
 
Obrigado,
 
Alex
 
 
 
            Locale locale = new Locale("pt","BR");
 
            java.util.Date date = DateFormat.getDateInstance( DateFormat.SHORT, locale ).parse( "11/10/2002" );
            Calendar calendar = Calendar.getInstance( locale );
            calendar.setTime( date );
System.out.println(calendar.getTime());   // Fri Oct 11 00:00:00 GMT-03:00 2002
 
            date = DateFormat.getDateInstance( DateFormat.SHORT, locale ).parse( "12/10/2002" );
            calendar.setTime( date );
System.out.println(calendar.getTime());  // Sat Oct 12 00:00:00 GMT-03:00 2002

            date = DateFormat.getDateInstance( DateFormat.SHORT, locale ).parse( "13/10/2002" );
            calendar.setTime( date );
System.out.println(calendar.getTime());  // Sat Oct 12 23:00:00 GMT-03:00 2002
 
            date = DateFormat.getDateInstance( DateFormat.SHORT, locale ).parse( "14/10/2002" );
            calendar.setTime( date );
System.out.println(calendar.getTime());  // Mon Oct 14 00:00:00 GMT-02:00 2002
 
 
 

Responder a