Pular para o conteúdo

Configurando corretamente para o Horário de Verão

Não há uma data fixa pré-estabelecida para o início e término do Horário de Verão no Brasil. A cada ano essa data é calculada de acordo com o pôr do sol. O problema é que nosso sistema não vai adivinhar isso. Esse artigo mostra como gerar um arquivo de zonas personalizado para seu sistema.
Perfil removido removido
Hits: 67.732 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Introdução

Não há uma data fixa pré-estabelecida para o início e término do Horário de Verão no Brasil. A cada ano essa data é calculada de acordo com o pôr do sol. Em 2004 o horário de verão vai começou oficialmente no dia 02 de Novembro e terminará no dia 20 de Fevereiro de 2005.

O problema é que nosso sistema não vai adivinhar isso e provavelmente utilizar a data do ano passado (19 de Outubro a 15 de Fevereiro), portanto da data em que foi escrito esse artigo, muitos sistemas já deverão estar com a data errada.

Felizmente é fácil se definir isso no Linux. ;)

O comando a ser utilizado é o 'zic' - ZoneInfo Compiler. Ele vai gerar, a partir de um arquivo de dados, o arquivo binário que o Linux utiliza para saber as datas exatas. Esse arquivo se localiza normalmente em:

/usr/share/zoneinfo/America/Sao_Paulo

Agora nesse diretório, confira se existe um arquivo com mesmo nome, com extensão .zic (Sao_Paulo.zic). Caso exista, basta editá-lo conforme as informações abaixo. Se não existir, tudo bem, basta criar o arquivo em um lugar qualquer como /tmp com seu editor de texto favorito, e adicionar as seguintes linhas:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Rule    BrazilSP  2004    only    -       Nov     02      0:00    1:00    S
Rule    BrazilSP  2005    only    -       Feb     20      0:00    0       -

# Zone  NAME                    GMTOFF  RULES/SAVE      FORMAT  [UNTIL]
Zone    America/Sao_Paulo       -3:00   BrazilSP        BR%sT

Salve o arquivo como Sao_Paulo.zic e execute o seguinte comando como root:

# zic Sao_Paulo.zic

Feito isso, o arquivo: /usr/share/zoneinfo/America/Sao_Paulo vai ser atualizado com as novas definições de data.

Como último passo, o Linux utiliza o arquivo /etc/localtime para saber qual zona utilizar. Se seu arquivo /etc/localtime for um link simbólico(*1) para /usr/share/zoneinfo/America/Sao_Paulo já está tudo certo.

Caso não seja um link, basta copiar o que você acabou de alterar no lugar do atual. Como root:

# cp /etc/localtime /etc/localtime.backup
# cp /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime


E estará pronto! Basta conferir utilizando o comando date:

$ date
Sun Nov 7 23:06:52 BRT 2004

Note a zona "BRT" em vez de "BRST" (*2)

Artigo escrito por: Wagner Amaral em 21/10/2004 - 12:41

Considerações finais

  1. Se sua partição /usr não for a mesma do root "/", o arquivo /etc/localtime não deverá ser um link, visto que /usr será montada depois do kernel estar rodando, então o arquivo não será encontrado. Se seu /usr for montado, simplesmente copie o arquivo para /etc/localtime e estará resolvido.

  2. Para os curiosos:
    BRT == BRazilian Time (horário normal)
    BRST == BRazilian Saving Time (saving == econômico == horário de verão)
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução

Linux Hoje

Configurando um servidor DNS e DHCP na rede

Recuperar a senha de root iniciando através do init=/bin/bash e alterando o arquivo /etc/shadow

Executando sua aplicação Kylix fora do Kylix

Configurando Velox no Kurumin

Removendo dependências desnecessárias no Debian

Configurando placas wireless baseadas no chip Realtek RTL8180 no Linux

Instalação do Funtoo GNU/Linux em VirtualBox

Web proxy Mikrotik V3.XX com controle de acesso

Linux Terminal Server - LTS

#1 Comentário enviado por fabio em 07/11/2004 - 19:44h
Aqui em casa criei um arquivo personalizado, o Gondor.zic. Me disseram que Gondor fica por aqui numa dimensão paralela. Segue o seu conteúdo:

---------------
Rule BrazilGN 2004 only - Nov 02 0:00 1:00 S
Rule BrazilGN 2005 only - Feb 20 0:00 0 -

#Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
Zone America/Gondor -3:00 BrazilGN BR%sT
---------------

Depois é rodar o:

# zic Gondor.zic

E boa! Para usuários de Debian mudar o timezone é simples, rode o comando:

# tzconfig

[]'s,
Fábio
#2 Comentário enviado por rbn_jesus em 08/11/2004 - 06:54h
sua dica é muito boa!!!!
obrigado.
#3 Comentário enviado por fernandofat em 09/11/2004 - 04:29h
A nível de cultura....
Para configurar o início e o fim do horário de verão no Windows utilize um programa chamado "tzedit.exe", ele é fornecido com o Resource Kit do Windows.
#4 Comentário enviado por srf em 09/11/2004 - 05:02h
Muito bom, eu estava precisando desta solução.... Parabens!
#5 Comentário enviado por vodooo em 28/02/2005 - 08:43h
Hehehe!!! Nada a ver mas eu odeio este horário de verão!!!

Abraços
#6 Comentário enviado por renato_pacheco em 14/10/2011 - 10:37h
Boa! Tive q modificar isso em um sistema Slack antigo (q tava pegando o horário d verão errado). Bastou criar um arquivo com o zic q tudo voltou ao normal.

Obrigado por colaborar!
#7 Comentário enviado por natanaelhenrique em 18/10/2011 - 21:31h
Mandou bem! Valeu! 10

Contribuir com comentário

Entre na sua conta para comentar.