리눅스 일광 절약 시간 혼란

리눅스 일광 절약 시간 혼란

내 질문은 일광 절약 시간제(DST)와 Linux에서 다음 동작이 정상적인지 여부에 관한 것입니다. TZ시간대를 지정하기 위해 POSIX 변수를 사용합니다 .

다음의 예시를 사용하세요.이것매뉴얼 페이지에서 TZ 변수를 다음과 같이 설정했습니다.

export TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0"

이 환경 변수를 설정한 후 이를 사용하여 date시간을 설정한 다음 일광 절약 시간제에 맞춰 시계가 똑딱거리는 것을 볼 수 있습니다. 그것은 훌륭하게 작동했습니다(이름이 로 변경되어 NZSTNZDT시간의 수면을 "잃었습니다").

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

하지만 일광 절약 시간이 끝나기 전에 설정하면 date이상한 동작이 발생합니다. 예를 들어, 다음과 같이 시간을 설정하면:

date --set="20 MAR 2016 0:59:50"
Sun Mar 20 00:59:50 NZDT 2016

여전히 괜찮지만 시계를 조금 앞당기면 1:00:50(오전 1시 직후로) 문제가 발생합니다.

date --set="20 MAR 2016 1:00:50"
Sun Mar 20 01:00:50 NZST 2016

우리는 뛰어내렸다 가 너무 빨리 NZDT다시 들어왔습니다 . NZST하지만 시스템을 다시 설정하고 0:59:50(인내심을 갖고) 기다리면 너무 일찍 튀어나오지 않고 NZDT적절한 시간에 롤백됩니다.NZST

이것이 정상적인 시스템 동작입니까?

답변1

문제는 변환을 처리하는 방법에 있는 것이 아니라 명령에 지정된 타이밍이 date --set="20 MAR 2016 1:00:50"불분명하다고 생각합니다.

즉, 이 시간은 일광 절약 시간이 끝나기 전에 처음으로 두 번 발생하고 시계가 한 시간 뒤로 이동할 때 발생합니다. 불행히도 발생해야 하는 시간을 지정하는 방법을 잘 모르겠습니다. 명확성을 위해 시간대를 포함할 수 있습니까?

관련 정보