shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: date - data inválida


From: MrBiTs
Subject: Re: [shell-script] Re: date - data inválida
Date: Wed, 11 Nov 2009 08:16:56 -0200

>> [1] https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/354793
>
> Complementando, note que 18/10/2009 foi o dia da entrada do Brasil no
> horário de verão. Temos em [2] outra thread interessante.
>
> [2] http://lists.gnu.org/archive/html/bug-coreutils/2007-09/msg00176.html

Isso é importante, visto que todos nós trabalhamos em vários momentos
com datas e nos valemos muito do comando date.
Quando fazemos date --date="2009-10-18", date irá interpretar a data
como "2009-10-18 00:00:00".
Analisando o timezone America/Sao_Paulo, já preparado para a entrada
do Brasil no horário de verão, temos:

mrbits@astarte:~$ zdump -v America/Sao_Paulo | grep 2009
America/Sao_Paulo  Sun Oct 18 02:59:59 2009 UTC = Sat Oct 17 23:59:59
2009 BRT isdst=0 gmtoff=-10800
America/Sao_Paulo  Sun Oct 18 03:00:00 2009 UTC = Sun Oct 18 01:00:00
2009 BRST isdst=1 gmtoff=-7200

Veja que não existe 00:00:00 do dia 18/10/2009. Esse é o motivo do
date retornar como data inválida.

Para provar, fazemos:

$ date --date="2009-10-18 01:00:00 +1 days"
Mon Oct 19 01:00:00 BRST 2009

Quando faço atualizações de timezone para o horário de verão, por ter
processamentos que iniciam-se pouco depois das 00:00, eu não posso
simplesmente "pular" das 23:59 para a 01:00. Então modifico meu
timezone "na mão", de forma que eu pule das 02:00 para as 03:00.
Assim, sempre vai existir para mim a data 2009-10-18 00:00:00.

Como resolver ? Siga as instruções do CAIS para compilar um arquivo
zic, modificando os horários de entrada e saída do horário de verão.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]