[RESOLVIDO] Raspberry PI entrou no horário de verão na data errada

Caros,

Tenho um Raspberry Pi que já instalei há muito tempo (acho que foi em 2018) e a tabela de horário de verão dele está desatualizada. Estou no ano de 2020 e esse ano não tem horário de verão.

O timezone configurado no meu sistema é o correto: America/Sao_Paulo mas uma lei recente revogou o horário de verão no Brasil e o meu Raspbian não ficou sabendo.

O Raspbian, que é um sistema operacional baseado no Debian. Então, acredito que os comandos abaixo também funcione no Ubuntu. Deixe o nome da sua distribuição linux nos comentários caso você tenha sucesso no seu sistema operacional.

Gastei algumas horas para descobrir como atualizar essa tabela no Raspberry Pi. Para que você não sofra tanto quanto eu, já deixo aqui a sequência de comandos que te ajudará a descobrir se sua tabela de horário de verão está desatualizada e os comandos para baixar uma tabela nova e atualizá-la.

Comando para verificar qual é o seu fuso horário:

$ cat /etc/timezone
America/Sao_Paulo

Se o seu timezone estiver errado, ajuste usando o comando `dpkg-reconfigure tzdata`:

$ sudo dpkg-reconfigure tzdata
Current default time zone: 'America/Sao_Paulo'
Local time is now: Tue Oct 20 10:15:24 -02 2020.
Universal Time is now: Tue Oct 20 12:15:24 UTC 2020.

Caso esteja correto mas a hora está errada, você pode consultar a tabela de horário de verão entre 2019 e 2021 do seu sistema operacional usando o `zdump`:

$ zdump -c 2019,2022  -V America/Sao_Paulo

America/Sao_Paulo  Sun Feb 17 01:59:59 2019 UT = Sat Feb 16 23:59:59 2019 -02 isdst=1 gmtoff=-7200
America/Sao_Paulo  Sun Feb 17 02:00:00 2019 UT = Sat Feb 16 23:00:00 2019 -03 isdst=0 gmtoff=-10800
America/Sao_Paulo  Sun Oct 20 02:59:59 2019 UT = Sat Oct 19 23:59:59 2019 -03 isdst=0 gmtoff=-10800
America/Sao_Paulo  Sun Oct 20 03:00:00 2019 UT = Sun Oct 20 01:00:00 2019 -02 isdst=1 gmtoff=-7200
America/Sao_Paulo  Sun Feb 16 01:59:59 2020 UT = Sat Feb 15 23:59:59 2020 -02 isdst=1 gmtoff=-7200
America/Sao_Paulo  Sun Feb 16 02:00:00 2020 UT = Sat Feb 15 23:00:00 2020 -03 isdst=0 gmtoff=-10800
America/Sao_Paulo  Sun Oct 18 02:59:59 2020 UT = Sat Oct 17 23:59:59 2020 -03 isdst=0 gmtoff=-10800
America/Sao_Paulo  Sun Oct 18 03:00:00 2020 UT = Sun Oct 18 01:00:00 2020 -02 isdst=1 gmtoff=-7200
America/Sao_Paulo  Sun Feb 21 01:59:59 2021 UT = Sat Feb 20 23:59:59 2021 -02 isdst=1 gmtoff=-7200
America/Sao_Paulo  Sun Feb 21 02:00:00 2021 UT = Sat Feb 20 23:00:00 2021 -03 isdst=0 gmtoff=-10800
America/Sao_Paulo  Sun Oct 17 02:59:59 2021 UT = Sat Oct 16 23:59:59 2021 -03 isdst=0 gmtoff=-10800
America/Sao_Paulo  Sun Oct 17 03:00:00 2021 UT = Sun Oct 17 01:00:00 2021 -02 isdst=1 gmtoff=-7200

Repare o valor do “isdst” da tabela acima, tem horário de verão começando no dia 18/Out/2020 e terminando em 20/Fev/2021. Minha tabela está realmente desatualizada.

É necessário baixar o arquivo com a informação mais atualizada do timezone. Verifique no site iana.org qual é o nome do pacote tzdata mais atualizado. No meu caso, é o arquivo “tzdata2020c.tar.gz”. Use a seguinte sequencia de comandos para consultar se esse pacote está correto. Essa sequência apenas testa o pacote. O seu sistema ainda não será alterado:

pi@raspberry:~ $ cd /tmp
pi@raspberry:/tmp $ wget "https://data.iana.org/time-zones/releases/tzdata2020c.tar.gz"
--2020-10-20 10:39:00--  https://data.iana.org/time-zones/releases/tzdata2020c.tar.gz
Resolving data.iana.org (data.iana.org)... 72.21.81.189, 2606:2800:11f:bb5:f27:227f:1bbf:a0e
Connecting to data.iana.org (data.iana.org)|72.21.81.189|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 400801 (391K) [application/x-gzip]
Saving to: ‘tzdata2020c.tar.gz’
tzdata2020c.tar.gz 100%[================================================>] 391.41K 906KB/s in 0.4s
2020-10-20 10:39:02 (906 KB/s) - ‘tzdata2020c.tar.gz’ saved [400801/400801]

pi@raspberry:/tmp $ mkdir tzdata
pi@raspberry:/tmp $ cd tzdata/
pi@raspberry:/tmp/tzdata $ tar -zxf ../tzdata2020c.tar.gz
pi@raspberry:/tmp/tzdata $ mkdir test
pi@raspberry:/tmp/tzdata $ zic -d test southamerica
pi@raspberry:/tmp/tzdata $ TZ=`pwd`/test/America/Sao_Paulo date
Tue 20 Oct 09:41:49 -03 2020

pi@raspberry:/tmp/tzdata $ zdump -c 2019,2021 -v `pwd`/test/America/Sao_Paulo
/tmp/tzdata/test/America/Sao_Paulo  Fri Dec 13 20:45:52 1901 UT = Fri Dec 13 17:39:24 1901 LMT isdst=0 gmtoff=-11188
/tmp/tzdata/test/America/Sao_Paulo  Sat Dec 14 20:45:52 1901 UT = Sat Dec 14 17:39:24 1901 LMT isdst=0 gmtoff=-11188
/tmp/tzdata/test/America/Sao_Paulo  Sun Feb 17 01:59:59 2019 UT = Sat Feb 16 23:59:59 2019 -02 isdst=1 gmtoff=-7200
/tmp/tzdata/test/America/Sao_Paulo  Sun Feb 17 02:00:00 2019 UT = Sat Feb 16 23:00:00 2019 -03 isdst=0 gmtoff=-10800
/tmp/tzdata/test/America/Sao_Paulo  Mon Jan 18 03:14:07 2038 UT = Mon Jan 18 00:14:07 2038 -03 isdst=0 gmtoff=-10800
/tmp/tzdata/test/America/Sao_Paulo  Tue Jan 19 03:14:07 2038 UT = Tue Jan 19 00:14:07 2038 -03 isdst=0 gmtoff=-10800
 

Quando executei o comando `zdump` acima novamente, observei que o ano de 2020 não faz mais parte da tabela de timezone. Então, este arquivo que baixei está realmente atualizado e posso compilar usando a ferramenta `zic` de forma definitiva no meu sistema:

pi@torre:/tmp/tzdata $ sudo zic southamerica
pi@torre:/tmp/tzdata $ date

Tue 20 Oct 09:43:04 -03 2020

Pronto! Se essa dica foi útil para você e te economizou um precioso tempo, deixe um comentário. Isso me estimulará a fazer mais artigos úteis como esse.

Sergio.

Este post foi útil para você?

1 comentário

Deixe um comentário

O seu endereço de e-mail não será publicado.