Confusão do Linux DST

1

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?

    
por Andy J 14.04.2015 / 05:50

1 resposta

1

Eu não acredito que o problema seja como a transição é tratada, mas que o tempo especificado no comando date --set="20 MAR 2016 1:00:50" é ambíguo.

Ou seja, esse tempo ocorre duas vezes; primeiro antes da transição para fora do horário de verão e, novamente, quando o relógio pulou de volta uma hora. Infelizmente, não tenho certeza de como alguém especificaria qual ocorrência do tempo é desejada (o fuso horário pode ser incluído para desambiguá-lo?).

    
por 14.04.2015 / 07:18