"export TZ=`date +%Z`"는 "date" 출력에 혼란을 야기합니다.

"export TZ=`date +%Z`"는 "date" 출력에 혼란을 야기합니다.

최근에 다음과 같은 (이상한) 동작을 발견했습니다.

user@pc:~$ date
  Mi 21. Jun 12:03:10 CEST 2017
user@pc:~$ date +%Z
  CEST
user@pc:~$ export TZ=`date +%Z`
user@pc:~$ date
  Mi 21. Jun 10:03:30 CEST 2017
user@pc:~$ date +%Z
  CEST

따라서 TZ 환경 변수가 현재 시스템 시간대로 설정되면 시계가 2시간 지연됩니다. UTC(CEST-2시간은 UTC)와 같습니다. 이제 TZ를 다른 값으로 설정하면 시계는 동일하게 유지됩니다.

user@pc:~$ export TZ=UTC
user@pc:~$ date
 Mi 21. Jun 10:07:09 UTC 2017
user@pc:~$ export TZ=PDT
user@pc:~$ date
 Mi 21. Jun 10:07:19 PDT 2017

그러나 TZ를 CEST-2로 설정하면 다시 정상적으로 작동합니다. 조금 혼란스러워요

user@pc:~$ export TZ=CEST-2
user@pc:~$ date
 Mi 21. Jun 12:28:16 CEST 2017

xUbuntu 16.04를 사용하고 있지만 이 동작은 OpenSUSE 42.2 시스템에서 재현될 수 있습니다.

/usr/share/zoneinfo/ABC 파일이 없을 때 시간대 "ABC+X"는 항상 "UTC+X"로 처리되는 것 같습니다(감사합니다.데 베라의견을 위해). 문자열 "ABC"는 인쇄된 날짜 문자열에 간단히 삽입됩니다.

질문:

  1. 위의 가정이 맞나요?
  2. date지원되지 않는 시간대 약어가 인쇄되는 이유는 무엇입니까 (즉, /usr/share/zoneinfo에서 사용할 수 없음)?

관련 정보