Saatlerin İleri-Geri Alınma Tarihlerinin Değişikliği (DST Değişikliği)


Gün ışığından faydalanmayı artırabilmek için gerçekleştirilen ve bizim saatleri ileri geri alma olarak adlandırdığımız işlemler(DST=daylight saving time) ülkelerin politikalarına göre sürekli değişiklik gösterebilmektedir. Dolayısıyla bir standardı bulunmamaktadır. Bu işlem bizde öyle çok yapılmadığı için açabileceği sorunlardan bir haber olabiliriz ama dijitalleşme oranı arttıkça bu tür değişikliklerin etkileri oldukça hissedilir olacaktır…

1 Kasım 2015 seçimleri nedeniyle 25 Ekim 2015 de gerçekleşecek saat geri alma işlemi 8 Kasım 2015 e ertelenmiş olması nedeniyle problem oluşacaktır.

Bilgisayarlarımızı kontrol ettiğimizde tarihi 25 ekim olarak görünmesi bir problemin habercisi… .

NTP sunucularımızın bizi kurtaracağını düşünebiliriz ama bu bir yanılgı olacaktır. Çünkü NTP sunucular DST değişikliği ile ilgilenmez Linux işletim sistemi bunu tzdata paketi ile yönetmektedir.

DST değişiklik tarihlerini nasıl görebilirim?

Eğer Linux işletim sistemi kullanıyorsanız kontrol işlemi oldukça kolay. Alttaki komutu çalıştırarak sisteminizin DST değişiklik tarihini görebilirsiniz. (Zaman diliminizin(Timezone) Europe/Istanbul olduğunu varsayıyorum.)

Windows işletim sistemlerinde de bu değişikliklerle ilgili güncellemeler yayınlanmaktadır. Sisteminizi güncel tutmanız bu durumu problemsiz atlatmanıza yardımcı olabilir.


$ zdump -v Europe/Istanbul | grep 2015

Europe/Istanbul Sun Mar 29 00:59:59 2015 UT = Sun Mar 29 02:59:59 2015 EET isdst=0 gmtoff=7200
 Europe/Istanbul Sun Mar 29 01:00:00 2015 UT = Sun Mar 29 04:00:00 2015 EEST isdst=1 gmtoff=10800
 Europe/Istanbul Sun Oct 25 00:59:59 2015 UT = Sun Oct 25 03:59:59 2015 EEST isdst=1 gmtoff=10800
 Europe/Istanbul Sun Oct 25 01:00:00 2015 UT = Sun Oct 25 03:00:00 2015 EET isdst=0 gmtoff=7200

Komut çıktısından görüldüğü üzere benim sunucum Oct 25 Pazar saat 3 te DST değişikliğini gerçekleştirecekmiş… Eyvah ki ne eyvah 🙂

Eğer işletim sistemini RHEL7 türevi ise timedatectl ile de görebilirsiniz DST değişiklik tarihini.


$ timedatectl
 Local time: Tue 2015-10-06 11:58:31 EEST
 Universal time: Tue 2015-10-06 08:58:31 UTC
 RTC time: Tue 2015-10-06 08:58:31
 Time zone: Europe/Istanbul (EEST, +0300)
 NTP enabled: yes
 NTP synchronized: yes
 RTC in local TZ: no
 DST active: yes
 Last DST change: DST began at
 Sun 2015-03-29 02:59:59 EET
 Sun 2015-03-29 04:00:00 EEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
 Sun 2015-10-25 03:59:59 EEST
 Sun 2015-10-25 03:00:00 EET

Problem Çözümü;

En basit çözüm Linux işletim sistemlerinde tzdata paketini güncellemektir.


$ yum update tzdata

Güncelleme işlemini gerçekleştirdikten sonra yeniden kontrol etmelisiniz DST tarih değişikliğini. Eğer gerekli paket güncellemesi repo da yapılmamışsa artık iş size kalıyor. (Bu güncelleme işlemini DST tarih değişikliğine yakın gerçekleştirin belki bu arada güncelleme çıkabilir.)

Manuel Yöntem;

En güncel timezone bilgilerini çekerek derleme işlemiyle bu problemi aşabilirsiniz. İşlem oldukça basit. Alttaki komutları çalıştırın ve arkanıza yaslanın. Problem hızlıca çözülecektir.


$ mkdir tz
$ cd tz
$ wget --retr-symlinks 'ftp://ftp.iana.org/tz/tz*-latest.tar.gz'
$ gzip -dc tzcode-latest.tar.gz | tar -xf -
$ gzip -dc tzdata-latest.tar.gz | tar -xf -
$ sudo zic -l Europe/Istanbul europe

Durumu kontrol ettiğimizde problemin düzelmiş olduğunu göreceksiniz.


$ timedatectl
 Local time: Tue 2015-10-06 11:39:15 EEST
 Universal time: Tue 2015-10-06 08:39:15 UTC
 Timezone: n/a (EEST, +0300)
 NTP enabled: yes
 NTP synchronized: yes
 RTC in local TZ: no
 DST active: yes
 Last DST change: DST began at
 Sun 2015-03-29 02:59:59 EET
 Sun 2015-03-29 04:00:00 EEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
 Sun 2015-11-08 03:59:59 EEST
 Sun 2015-11-08 03:00:00 EET

ya da


$ zdump -v Europe/Istanbul | grep 2015

Europe/Istanbul Sun Mar 29 00:59:59 2015 UTC = Sun Mar 29 02:59:59 2015 EET isdst=0 gmtoff=7200
 Europe/Istanbul Sun Mar 29 01:00:00 2015 UTC = Sun Mar 29 04:00:00 2015 EEST isdst=1 gmtoff=10800
 Europe/Istanbul Sun Nov 8 00:59:59 2015 UTC = Sun Nov 8 03:59:59 2015 EEST isdst=1 gmtoff=10800
 Europe/Istanbul Sun Nov 8 01:00:00 2015 UTC = Sun Nov 8 03:00:00 2015 EET isdst=0 gmtoff=7200

Reklamlar