Nonaktifkan Daylight Saving Time (DST) Perubahan di Linux

12

Beberapa minggu yang lalu, diumumkan (oleh Kementerian Energi dan Sumber Daya Alam Turki) bahwa DST akan bersifat permanen dan GMT + 3 akan digunakan selamanya di negara tersebut.

Saat ini, zona waktu server Linux kami diatur ke Eropa / Istanbul . Tetapi belum ada pembaruan tzdata yang dirilis.

Karena kurangnya pembaruan, zona waktu akan diubah dari GMT + 3 ke GMT + 2 pada 30 Oktober 2016 secara otomatis sebagaimana dinyatakan dalam file zoneinfo (/ usr / share / zoneinfo / Eropa / Istanbul).

Anda dapat melihat detail untuk 2016 di bawah ini:

# zdump -v /usr/share/zoneinfo/Europe/Istanbul | grep 2016
/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 00:59:59 2016 UT = Sun Mar 27 02:59:59 2016 EET isdst=0 gmtoff=7200
/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 01:00:00 2016 UT = Sun Mar 27 04:00:00 2016 EEST isdst=1 gmtoff=10800
/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 00:59:59 2016 UT = Sun Oct 30 03:59:59 2016 EEST isdst=1 gmtoff=10800
/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 01:00:00 2016 UT = Sun Oct 30 03:00:00 2016 EET isdst=0 gmtoff=7200

(Dalam hal tidak ada pembaruan) Untuk mencegah situasi ini menjadi krisis, kami memutuskan untuk memiliki rencana cadangan yang mengatur zona waktu server kami untuk memperbaiki GMT + 3 ; tapi kami menghadapi perilaku aneh ketika GMT + 3 yang diperbaiki diatur.

Mari kita lihat apa waktu lokal dan waktu UTC di server kami sebelum kami melakukan perubahan pada zona waktu.

# date
Wed Sep 21 11:13:11 EEST 2016
# date -u
Wed Sep 21 08:13:15 UTC 2016

Kami menetapkan zona waktu untuk menetapkan GMT + 3 sebagai berikut:

# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

Mari kita lihat apa waktu lokal dan waktu UTC di server kami setelah perubahan. Waktu GMT + 3 adalah 3 jam lebih awal dari UTC di mana seharusnya 3 jam lebih lambat dari UTC , seperti yang terlihat pada output di atas.

# date
Wed Sep 21 05:14:24 GMT+3 2016
# date -u
Wed Sep 21 08:14:26 UTC 2016

Itu tidak berubah, bahkan jika kita mereset waktu setempat atau waktu UTC.

# date -s "21 Sep 2016 11:16:00"
Wed Sep 21 11:16:00 GMT+3 2016
# date
Wed Sep 21 11:16:02 GMT+3 2016
# date -u
Wed Sep 21 14:16:05 UTC 2016

# date -u -s "21 Sep 2016 11:16:00"
Wed Sep 21 11:16:00 UTC 2016
# date
Wed Sep 21 08:16:01 GMT+3 2016
# date -u
Wed Sep 21 11:16:02 UTC 2016

Mengapa offset tampak mundur?

vaha
sumber

Jawaban:

12

Pembaruan # 1: Pembaruan database Timezone baru-baru ini dirilis untuk beberapa sistem operasi di bawah repositori resmi mereka. Versi ini tzdata2016gmencakup pengaturan untuk perubahan yang disebutkan.

Pada titik tertentu, pertanyaan ini adalah duplikat dari pertanyaan yang diajukan di superuser.com .

Jawaban sejernih kristal adalah

"Zona seperti Etc / GMT + 6 sengaja dibalik untuk kompatibilitas dengan standar POSIX"

Tetapi saya percaya bahwa itu tidak boleh dihapus untuk membantu orang yang ingin menonaktifkan perubahan DST dalam sistem Linux.

Untuk menonaktifkan perubahan DST , tautkan /etc/localtimefile Anda ke salah satu file zoneinfo yang ditempatkan di bawah folder/usr/share/zoneinfo/Etc/

Contoh perintah:

# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

Untuk memilih file zoneinfo yang paling cocok , balikkan tanda GMT yang Anda targetkan.

yaitu Untuk mengatur GMT + 3 zona waktu (yang lebih cepat 3 jam dari UTC), seseorang harus menggunakan / usr / share / zoneinfo / Etc / GMT-3

vaha
sumber
+1 dari saya, tetapi sungguh, itu mengatakan semua yang perlu Anda ketahui tentang POSIX, dan mengapa hampir semua orang membencinya.
MadHatter
2

Pada titik tertentu revisi baru untuk tabel TZ akan dirilis dan tersedia untuk pembaruan untuk semua distribusi Linux. Hmm .... Saya bisa swarn bahwa tabel zona waktu yang diperbarui telah tersedia segera setelah pengumuman dibuat mengatasi masalah ini. Mungkin ada penunjuk TZ baru untuk situasi Anda.

mdpc
sumber
1
Setuju dengan Anda. Jika pembaruan maka tidak ada masalah. Kami hanya berbicara tentang rencana cadangan.
vaha