Atualizando os Sistemas para o Horário de Verão no Brasil


Como fazer para acertar o horário de verão do Brasil em vários sistemas operacionais atuais - incluindo Unix e Windows.


Atualizado:

Introdução

        As regras para o Horário Brasileiro de Verão tem mudado ano após ano. Apesar de muitos sistemas operacionais proverem a mudança automática de horário e mesmo os fusos horários do Brasil, as regras implementadas para isto já estão há muito obsoletas e precisam ser atualizadas.
 

As regras


        Os sistemas operacionais modernos usam regras baseadas principalmente no dia da semana no mês para indicar a mudança. Por exemplo, no Brasil, para 1999/2000, o horário de verão foi marcado para começar na zero hora do primeiro domingo de outubro e para terminar na zero hora do quarto domingo de fevereiro. Já em 1997/1998, devido a uma visita do Papa, o início do horário de verão foi adiado para iniciar na primeira segunda-feira de outubro e perdurou até o primeiro domingo de março - inicialmente, estava marcado para terminar no quarto domingo de fevereiro, mas foi extendido porque a mudança cairia durante o carnaval (o que é estranho - não seria melhor o povo ter uma hora a mais de carnaval no domingo? Veja as explicações da Aneel).

        Ultimamente, o Horário de verão vem sendo alterado por conta das eleições; segundo o TSE, "para não ter que modificar o horário em todas as urnas eletrônicas". Mas o que é mais sensato: modificar 380.000 urnas eletrônicas ou 40 milhões de computadores?

        Com regras tão variáveis, é necessário fazer um procedimento que facilite a atualização rápida, principalmente se levarmos em consideração que um parque de máquinas que pode chegar a mais de 1000 computadores com sistemas operacionais diferentes.

        Depois de mais de 15 anos estabelecendo o horário de verão, seria de se esperar que os técnicos do Ministério das Minas e Energia ou da Agência Nacional de Energia Elétrica - Aneel - já tivesse estabelecido a regra ótima para economia de energia, mas isto ainda não aconteceu. Esperamos que no futuro os nossos governantes estabeleçam regras fixas, para não precisarmos fazer estas correções todos os anos e nos ajudar a reduzir o "Custo Brasil".
 

Regras básicas do horário de verão no Brasil:

  • Início no Primeiro Domingo de Outubro, à meia-noite
  • Final no Último Domingo de Fevereiro, à meia-noite (voltando para 23h de sábado)
  • Para 2007/2008: Início atrasado para o segundo domingo de outubro; final adiantado para o segundo domingo de fevereiro.

    Para 2006/2007: Início atrasado para o primeiro domingo de novembro em função das eleições gerais de 1 e 29 de outubro; final devolvido para o último (quarto) domingo de fevereiro.

    Para 2003/2004, 2004/2005 e 2005/2006: Início atrasado para o terceiro domingo de outubro, final adiantado para o terceiro domingo de fevereiro. Num raro período de estabilidade, a regra se manteve a mesma de 2003 a 2006, exceto pelo fato do Estado do Mato Grosso ter ficado de fora do Horário de Verão de 2003/2004.

    Para 2002/2003: Início atrasado para o primeiro domingo de novembro em função das eleições gerais de 6 e 27 de outubro, final adiantado para o terceiro domingo de fevereiro.

    Para 2000/2001: Início atrasado para o segundo domingo de outubro em função das eleições municipais de 1º de outubro, final adiantado para o terceiro domingo de fevereiro.

    Para demais períodos, veja o Site Oficial da Aneel sobre o Horário de Verão.

    Unix: zoneinfo


            As instruções a seguir são válidas para sistemas que utilizem zoneinfo e zic (zoneinfo compiler), como Linux, Solaris 2, SunOS 4, Ultrix, DEC/Compaq Unix, derivados BSD (FreeBSD, OpenBSD, etc.), entre outros. Se este não for o seu caso, veja como acertar o seu sistema se ele for um Unix usando a váriavel TZ.


            A maioria dos Unices modernos utiliza uma derivação do BSD para regras de horário de verão. Estas regras formam um banco de dados - zoneinfo - que contém regras para vários países e regiões, para vários anos;  para o Brasil, foram mapeadas inicialmente para os quatro fusos horários oficiais e suas diferenças em relação ao horário padrão mundial - UTC, Universal Time Coordinate, também chamado de GMT, Greenwich Mean (ou Meridian) Time - Hora Base - ou do Meridiano - de Greenwich:

            Depois de muitas mudanças nas regras de início e fim, de inclusão e exclusão do programa de Horário de Verão, o Brasil acabou ficando com 15 zonas de horário distintas, ocupando 4 ou 5 fusos horários (dependendo do ano):         Todo Estado da Federação, entrando ou não em horário de verão, deve usar uma destas zonas; elas compreendem todas as regras desde o estabelecimento do regime de fusos horários no Brasil em 1918, incluindo as primeiras aplicações do Horário de Verão em 1931. Se não quiser - ou não puder - usar a mudança, deve usar Etc/GMT-3 ou outro similar, dependendo de seu fuso horário.

            Para atualizar o banco de dados, siga-se o seguinte procedimento:

            Para facilitar a vida dos administradores, também está disponível um RPM para Linux! Basta instalar para corrigir o banco de dados zoneinfo; uma vez instalado, o sistema estará respondendo com as novas regras. Não é necessário instalar novamente cada vez que que atualizar glibc. Foi feito para RedHat Linux versão 6.2 até 9, mas deve funcionar bem com outras versões de Linux baseadas em RPM (isto não foi testado).

            Para RedHat Enterprise Linux 3 e posteriores, e para Fedora Core (qualquer versão), o pacote tzdata conteém as atualizações necessárias. Manter este pacote atualizado geralmente é o suficiente. Eventualmente, rodar o comando

           zic -l nome da sua zona de horários
    pode ser necessá para completar a atualização.

            Havendo alguma falha na instalação do RPM, reverta para a instalação pelo arquivo zoneinfo.Brazil.

            O fuso horário local, quando a variável TZ (Vide a seguir para maiores detalhes) não está definida, é determinado pelo arquivo /etc/localtime. Após a atualização, verifique se este arquivo também foi atualizado e, se não foi, execute apenas

           zic -l nome da sua zona de horários

    Unix: variável TZ


            As instruções a seguir são válidas para sistemas derivados do System V que utilizam a variável TZ para estabelecer o fuso horário, como AIX, IRIX, SCO Openserver e outros. Se este não for o seu caso, verifique como acertar o seu sistema utilizando zoneinfo. Solaris 2 em diante, apesar de ser derivado do System V,  utiliza a variável apenas para indicar a regra dentro da estrutura zoneinfo.


            A maior parte dos Unices derivados do System V da AT&T utilizam uma variável de ambiente - TZ, para Time Zone ou fuso horário - para identificar o fuso horário. O valor da variável tem a seguinte sintaxe:

    FUSO[diff[VERAO[diffv][,regra]]]]
            Onde FUSO é o nome do fuso horário, diff é a diferença em horas para UTC, com sinal e revertida - isto é, quantas horas é preciso somar à hora local para chegar a UTC -, VERAO é o nome do fuso em horário de verão, diffv é a diferença em horas para UTC durante o horário de verão (se não for especificada, é uma hora a menos que diff) e regra é a regra para mudança de horário de verão(cuja ausência indica o uso da regra dos EUA). A sintaxe da regra pode ser obtida na documentação do sistema.

            Para usar esta variável onde não haja  horário de verão, basta especificar a primeira parte, e.g. TZ=NPB3, significando neste caso que o fuso chama-se NPB e que está a 3 horas de UTC.

            Para atualizar o sistema, é preciso modificar o arquivo que contém o valor para a variável TZ  para os processos quando o sistema inicia, ou quando algum usuário entra no sistema. A localização do arquivo varia, mas em geral é /etc/TIMEZONE. Para AIX, este arquivo é /etc/environment. Atenção: este arquivo pode conter mais informações ou o valor de mais variáveis além de TZ, portanto recomenda-se cuidado ao modificá-lo. Siga os seguintes passos:
     

    Windows

            Windows 95, Windows 98 e Windows NT (e suas versões posteriores) utilizam informações no registry para reconhecer fusos horários e regras do horário de verão. Estas regras podem ser atualizadas com um útilitário chamado Time Zone Editor, parte do Windows 95 Kernel Toys, uma série de utilitários distribuidos pela Microsoft para acessar algumas features do sistema. O mesmo editor pode ser usado para Windows 95, Windows 98 e Windows NT, e existem versões mais recentes para Windows Me, 2000, XP e 2003. Segundo a Microsoft, também está disponível no Resource Kit de cada sistema.

    A Microsoft está ciente da situação da política - ou falta de - sobre o Horário de Verão no Brasil. Vide o Microsoft Knowledge Base Article - 317211 - How to Configure Daylight Time Dates for Brazil (em inglês).

            Para atualizar o seu sistema, você pode ou utilizar o editor ou usar os trechos de registry aqui disponíveis para as versões em inglês e português de Windows 95 e Windows NT 4. Atenção: estes arquivos foram gerados somente para as versões em inglês e português de Windows 95 e Windows NT 4. Embora possam funcionar para outros idiomas e a versão de Windows 95 possa funcionar para Windows 98 e Me e a versão de Windows NT possa funcionar para Windows 2000, XP e 2003, isto não é garantido - faça por sua conta e risco.

            Para utilizar os trechos de registry, faça o seguinte:

            Para utilizar o Time Zone Editor, faça o seguinte:

    Se você usar os arquivos para registry, as mudanças serão reconhecidas na próxima reinicialização do sistema, ou você pode preferir usar o sistema descrito adiante para recarregar as regras. Se você usar o editor, a mudança não será reconhecida imediatamente, pois a regra em uso não foi mudada, apenas a do banco de dados.

    Para efetivar a mudança, é preciso selecionar um outro fuso horário e depois resselecionar o fuso horário escolhido; então as regras passarão a fazer efeito. Atenção: caso use o editor, reiniciar o sistema não basta, é preciso selecionar novamente o fuso horário para que as regras sejam recarregadas. Para fazer isto:


            Se estiver em uma região sem horário de verão, retire a seleção de ajuste automático para horário de verão na folha de Fuso Horário:

    Sem horário de verão



    Arquivos úteis

    Atualizados para o verão 2007/2008

  •  Arquivo fonte de zoneinfo para Unix
  •  Arquivo TIMEZONE para Unix (contém variável TZ)
  •  RPM para Linux, atualizando o zoneinfo
  •  Atualização de registro para Windows 9x (em inglês e português)
  •  Atualização de registro para Windows NT 4 (em inglês e português)
  •  Time Zone Editor e seu arquivo de ajuda
  •  Windows 95 Kernel Toys

  •         Lembre-se que no Brasil o horário de verão é instituído ano a ano por decreto presidencial, portanto a regra pode mudar para o próximo ano. Se isto ocorrer, esta página e os arquivos apontados por ela serão atualizados de acordo.


    Se você tem comentários e/ou sugestões, envie um e-mail para info@weavers.com.br


    Última atualização em 10/Outubro/2007