Quem da área de TI já não ficou azedo no carnaval por causa do tal "horário de verão"? A regra, definida no decreto, muda o domingo conforme o carnaval, o que leva a criação de scripts e soluções das mais variadas para evitar o problema do domingo subsequente.
Para evitar compilar o zic anualmente, resolvi em 2010 fazer uma pesquisa e criar um zic até 2038. A mudança no decreto deve ser observada até lá, e claro, seu estado de incidência.
A configuração é simples e requer apenas o arquivo zic no respectivo diretório zoneinfo do seu servidor (normalmente: /usr/share/zoneinfo/Brazil/).
Arquivo ZIC
# DECRETO Nº 6.558, DE 8 DE SETEMBRO DE 2008.
# Institui a hora de verão em parte do território nacional.
# O PRESIDENTE DA REPÚBLICA, no uso da atribuição que lhe confere o art. 84, inciso IV, da Constituição,
# e tendo em vista o disposto no art. 1o, inciso I, alínea .b., e § 2º, do Decreto-Lei no 4.295, de 13 de maio de 1942,
# DECRETA:
#
# Art. 1o Fica instituída a hora de verão, a partir de zero hora do terceiro domingo do mês de outubro de cada ano,
# até zero hora do terceiro domingo do mês de fevereiro do ano subseqüente, em parte do território nacional,
# adiantada em sessenta minutos em relação à hora legal.
#
# Parágrafo único. No ano em que houver coincidência entre o domingo
# previsto para o término da hora de verão e o domingo de carnaval,
# o encerramento da hora de verão dar-se-á no domingo seguinte.
#
# //Art. 2o A hora de verão vigorará nos Estados do Rio Grande do Sul, Santa Catarina, Paraná, São Paulo, Rio de Janeiro, Espírito Santo, Minas Gerais, Goiás, Mato Grosso, Mato Grosso do Sul e no Distrito Federal.
# 2011/Art. 2o A hora de verão vigorará nos Estados do Rio Grande do Sul, Santa Catarina, Paraná, São Paulo, Rio de Janeiro, Espírito Santo, Minas Gerais, Bahia, Goiás, Mato Grosso, Mato Grosso do Sul e no Distrito Federal.
# //(Redação dada pelo Decreto nº 7584, de 2011)
# 2012/Art. 2o A hora de verão vigorará nos Estados do Rio Grande do Sul, Santa Catarina, Paraná, São Paulo, Rio de Janeiro, Espírito Santo, Minas Gerais, Goiás, Mato Grosso, Mato Grosso do Sul, Tocantins e no Distrito Federal.
# //(Redação dada pelo Decreto nº 7.826, de 2012)
#
# Art. 2o A hora de verão vigorará nos Estados do Rio Grande do Sul, Santa Catarina, Paraná, São Paulo, Rio de Janeiro, Espírito Santo, Minas Gerais, Goiás, Mato Grosso, Mato Grosso do Sul e no Distrito Federal. (Redação dada pelo Decreto nº 8.112, de 2013)
# Art. 3o Este Decreto entra em vigor na data de sua publicação.
#
# Brasília, 8 de setembro de 2008; 187º da Independência e 120º da República.
#
# LUIZ INÁCIO LULA DA SILVA
# Edison Lobão
#
# Este texto não substitui o publicado no DOU de 9.9.2008
Rule Brazil 2010 only - Oct 17 00:00 1 S
Rule Brazil 2011 only - Feb 20 00:00 0 -
Rule Brazil 2011 only - Oct 16 00:00 1 S
Rule Brazil 2012 only - Feb 26 00:00 0 -
Rule Brazil 2012 only - Oct 21 00:00 1 S
Rule Brazil 2013 only - Feb 17 00:00 0 -
Rule Brazil 2013 only - Oct 20 00:00 1 S
Rule Brazil 2014 only - Feb 16 00:00 0 -
Rule Brazil 2014 only - Oct 19 00:00 1 S
Rule Brazil 2015 only - Feb 22 00:00 0 -
Rule Brazil 2015 only - Oct 18 00:00 1 S
Rule Brazil 2016 only - Feb 21 00:00 0 -
Rule Brazil 2016 only - Oct 16 00:00 1 S
Rule Brazil 2017 only - Feb 19 00:00 0 -
Rule Brazil 2017 only - Oct 15 00:00 1 S
Rule Brazil 2018 only - Feb 18 00:00 0 -
Rule Brazil 2018 only - Oct 21 00:00 1 S
Rule Brazil 2019 only - Feb 17 00:00 0 -
Rule Brazil 2019 only - Oct 20 00:00 1 S
Rule Brazil 2020 only - Feb 16 00:00 0 -
Rule Brazil 2020 only - Oct 18 00:00 0 -
Rule Brazil 2021 only - Feb 21 00:00 0 -
Rule Brazil 2021 only - Oct 17 00:00 1 S
Rule Brazil 2022 only - Feb 20 00:00 0 -
Rule Brazil 2022 only - Oct 16 00:00 1 S
Rule Brazil 2023 only - Feb 26 00:00 0 -
Rule Brazil 2023 only - Oct 15 00:00 1 S
Rule Brazil 2024 only - Feb 18 00:00 0 -
Rule Brazil 2024 only - Oct 20 00:00 1 S
Rule Brazil 2025 only - Feb 16 00:00 0 -
Rule Brazil 2025 only - Oct 19 00:00 1 S
Rule Brazil 2026 only - Feb 22 00:00 0 -
Rule Brazil 2026 only - Oct 18 00:00 1 S
Rule Brazil 2027 only - Feb 21 00:00 0 -
Rule Brazil 2027 only - Oct 17 00:00 1 S
Rule Brazil 2028 only - Feb 20 00:00 0 -
Rule Brazil 2028 only - Oct 15 00:00 1 S
Rule Brazil 2029 only - Feb 18 00:00 0 -
Rule Brazil 2029 only - Oct 21 00:00 1 S
Rule Brazil 2030 only - Feb 17 00:00 0 -
Rule Brazil 2030 only - Oct 20 00:00 0 -
Rule Brazil 2031 only - Feb 16 00:00 0 -
Rule Brazil 2031 only - Oct 19 00:00 1 S
Rule Brazil 2032 only - Feb 15 00:00 0 -
Rule Brazil 2032 only - Oct 17 00:00 1 S
Rule Brazil 2033 only - Feb 20 00:00 0 -
Rule Brazil 2033 only - Oct 16 00:00 1 S
Rule Brazil 2034 only - Feb 26 00:00 0 -
Rule Brazil 2034 only - Oct 15 00:00 1 S
Rule Brazil 2035 only - Feb 18 00:00 0 -
Rule Brazil 2035 only - Oct 21 00:00 1 S
Rule Brazil 2036 only - Feb 17 00:00 0 -
Rule Brazil 2036 only - Oct 19 00:00 1 S
Rule Brazil 2037 only - Feb 22 00:00 0 -
Rule Brazil 2037 only - Oct 18 00:00 1 S
Rule Brazil 2038 only - Feb 21 00:00 0 -
Rule Brazil 2038 only - Oct 17 00:00 1 S
Zone Brazil/East -3:00 Brazil BR%sT
Configuração
Salve o texto (ZIC) como arquivo zic no seu
zoneinfo/Brazil com o nome "2038.zic "
Execute:
# zic 2038.zic
Aparecerá um novo arquivo East (novos horários de verão).
Neste momento observe sua distribuição (Ubuntu/Slack/Red/etc) e veja como atualizar o localtime do seu computador.
Comandos mais comuns:
- timeconfig
- dpkg-reconfigure
- cp /usr/share/zoneinfo/Brazil/East /etc/localtime
- ln -s /usr/share/zoneinfo/Brazil/East /etc/localtime