Minha pergunta é sobre o horário de verão (DST) e se o comportamento a seguir é normal ou não no Linux. Estou usando a variável POSIX TZ
para especificar o fuso horário.
Usando o exemplo da esta página man , eu configuro a variável TZ da seguinte forma :
export TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0"
Depois de definir essa variável de ambiente, posso usar date
para definir a hora e, em seguida, ver o relógio passar para o DST. E isso funciona muito bem (o nome muda de NZST
para NZDT
, e nós "perdemos" uma hora de sono).
Sun Oct 4 01:59:57 NZST 2015
Sun Oct 4 01:59:58 NZST 2015
Sun Oct 4 01:59:59 NZST 2015
Sun Oct 4 01:59:59 NZST 2015
Sun Oct 4 03:00:00 NZDT 2015
Sun Oct 4 03:00:01 NZDT 2015
Mas quando defino o date
para o final do DST, sinto um comportamento estranho. Por exemplo, se eu definir a hora da seguinte forma:
date --set="20 MAR 2016 0:59:50"
Sun Mar 20 00:59:50 NZDT 2016
Ainda estamos bem. Mas se eu acionar o relógio levemente para 1:00:50
(logo após 1h da manhã), vemos um problema:
date --set="20 MAR 2016 1:00:50"
Sun Mar 20 01:00:50 NZST 2016
Nós saltamos de NZDT
e voltamos para NZST
cedo demais. Mas se eu definir o sistema de volta para 0:59:50
e (pacientemente) esperar, ele não sairá do NZDT
muito cedo e ele retornará para NZST
no momento certo.
Este comportamento normal do sistema?