전에 NTP 관련하여 섬머타임제, 즉 DST(Daylight Saving Time)에 대해서 궁금한 적이 있었습니다.

예를 들어, DST를 시행하고 있는데 시스템에서 어떻게 자동으로 적용이 되는 것인지..

NTP 서버에서 바뀐 시간에 대한 정보를 제공하는 것인지, 어디에서 변환이 발생하는지 등등..


NTP 서버는 오로지 UTC 표준타임만을 제공합니다.

TIMEZONE, DST와 관계없이 동일한 시간을 제공하기 때문입니다.

즉, 서버는 NTP 서버(Time Server)와 동기화 할 때 UTC 값만을 사용하여 동기화 하게 됩니다.

그러면 해당 UTC 시간 값에 대해서 TIMEZONE 및 DST에 대한 정보를 변환하여 표시해 줍니다.


따라서 결국 TIMEZONE 및 DST에 대한 변환은 시스템(OS)에서 진행이 됩니다.

이 말은 역으로, DST를 시행하다가 폐지하는 경우,

기존 OS에 DST 정보가 포함되어 있으므로, 

적절한 시간 표시를 위해 TIMEZONE 데이터의 업데이트가 필요할 것으로 보입니다.


# ls -l /usr/share/zoneinfo/Asia/Seoul

-rw-r--r-- 2 root root 380 Aug 13  2009  /usr/share/zoneinfo/Asia/Seoul


#rpm -qf /usr/share/zoneinfo/Asia/Seoul

tzdata-2009k-1.el5


아래는 현재 DST를 시행하고 있는 EET TIMEZONE과

DST를 시행하지 않는 KST TIMEZONE에 대한 정보입니다.


아래 EET-2EEST,M3.5.0/3,M10.5.0/4 이 부분이 DST에 대한 정보입니다.

3월 5일이 아닌 3월 5th week, 3시에 시작하여 10월 5번째 주 4시에 해제되도록 설정되어 있습니다. 



# strings /usr/share/zoneinfo/EET | more
TZif2
EEST
TZif2
EEST
EET-2EEST,M3.5.0/3,M10.5.0/4



현재 DST를 시행하지 않는 KST 입니다.


# strings /usr/share/zoneinfo/Asia/Seoul
TZif2
Dp!n=`"
& p#N
TZif2
!n=`
KST-9


zdump는 TIMEZONE에 대한 정보를 보여주는 명령어입니다.

-v 옵션을 사용하여, DST 정보를 출력할 수 있습니다.


# zdump -v EET | grep 2008
EET Sun Mar 30 00:59:59 2008 UTC = Sun Mar 30 02:59:59 2008 EET isdst=0 gmtoff=7200
EET Sun Mar 30 01:00:00 2008 UTC = Sun Mar 30 04:00:00 2008 EEST isdst=1 gmtoff=10800
EET Sun Oct 26 00:59:59 2008 UTC = Sun Oct 26 03:59:59 2008 EEST isdst=1 gmtoff=10800
EET Sun Oct 26 01:00:00 2008 UTC = Sun Oct 26 03:00:00 2008 EET isdst=0 gmtoff=7200

# zdump -v EET | grep 2015
EET Sun Mar 29 00:59:59 2015 UTC = Sun Mar 29 02:59:59 2015 EET isdst=0 gmtoff=7200
EET Sun Mar 29 01:00:00 2015 UTC = Sun Mar 29 04:00:00 2015 EEST isdst=1 gmtoff=10800
EET Sun Oct 25 00:59:59 2015 UTC = Sun Oct 25 03:59:59 2015 EEST isdst=1 gmtoff=10800
EET Sun Oct 25 01:00:00 2015 UTC = Sun Oct 25 03:00:00 2015 EET isdst=0 gmtoff=7200

한 때 우리나라도 DST를 시행하던 시절이 있었습니다.


# zdump -v Asia/Seoul | grep 2015

결과없음


# zdump -v Asia/Seoul | grep 1988
Asia/Seoul Sat May 7 14:59:59 1988 UTC = Sat May 7 23:59:59 1988 KST isdst=0 gmtoff=32400
Asia/Seoul Sat May 7 15:00:00 1988 UTC = Sun May 8 01:00:00 1988 KDT isdst=1 gmtoff=36000
Asia/Seoul Sat Oct 8 13:59:59 1988 UTC = Sat Oct 8 23:59:59 1988 KDT isdst=1 gmtoff=36000
Asia/Seoul Sat Oct 8 14:00:00 1988 UTC = Sat Oct 8 23:00:00 1988 KST isdst=0 gmtoff=32400



+ Recent posts