Mengapa zone.tab kehilangan begitu banyak zona waktu?


12

Ada lebih dari seribu file zona waktu pada kotak * nix khas Anda (di / user / share / zoneinfo). Banyak dari mereka hanya bervariasi dalam tanggal-tanggal bersejarah yang memiliki sedikit relevansi untuk program-program yang hanya peduli pada tanggal-tanggal terakhir - atau bahkan hanya tentang waktu saat ini. Tetapi terlepas, ada yang satu ton dari mereka, dan itu sangat legal untuk memilih salah satu dari mereka sebagai zona waktu untuk sistem Anda serta untuk menggunakan salah satu dari mereka untuk program tertentu atau shell dengan menetapkan variabel lingkungan TZ. Semuanya valid.

Dan kemudian ada file zone.tab (/usr/share/zoneinfo/zone.tab). Ini daftar hanya sedikit lebih dari 400 zona waktu (414 di sistem saya). Ini kehilangan banyak zona waktu. Jadi, pertanyaannya adalah mengapa? Kenapa mereka tidak ada di sana? Dan karena mereka tidak semuanya di sana, bagaimana memutuskan yang mana yang dimasukkan ke sana?

zone.tab menyertakan kode negara dan juga bujur dan lintang untuk setiap zona waktu yang dicantumkan (yang mungkin merupakan alasan keberadaan file), dan tidak semua zona waktu benar-benar memilikinya (mis. UTC tidak memiliki , dan itu bukan di zone.tab), jadi jelas, tidak setiap zona waktu dapat dicantumkan di zone.tab. Tetapi mengapa tidak semua yang sesuai dengan kota atau wilayah yang sebenarnya (seperti kebanyakan dari mereka) tercantum dalam file? Mengapa hanya 414 dan bukan 1000+ yang sebenarnya tersedia?

Jawaban:


6

Sebuah utas berjudul A permintaan baru untuk dimasukkannya zone.tab menawarkan beberapa penjelasan tentang apa zone.tabyang digunakan untuk.

Penggunaan utamanya tampaknya untuk menunjukkan peta kota dan lokasi mereka, untuk memungkinkan pengguna memilih zona waktu mereka dengan mengklik pada kota di dekat mereka.

Dengan pemikiran itu, tidak perlu mengetahui semua alias untuk setiap kota, mengetahui satu cara yang disukai untuk merujuknya sudah cukup. (Tapi sepertinya itu selalu mencakup setidaknya satu kota di setiap negara.)

Alias ​​lain untuk setiap zona disimpan dalam kode sumber tzdata .

Sebagai contoh, backwardfile tersebut memiliki

Link    Asia/Kolkata        Asia/Calcutta

sehingga orang dapat menggunakan ejaan baru atau ejaan lama.

Semua file lain /usr/share/zoneinfodihasilkan dari kode sumber ini menggunakan zic.

Tapi tidak ada 600+ alias, jadi mengapa perbedaan besar?

Biasanya ada tiga versi dari masing-masing zona yang dihasilkan: posix, right, dan standar sistem anda.

$ cd /usr/share/zoneinfo
$ find right -type f | wc -l
581
$ find posix -type f | wc -l
581
$ find . \( -name posix -o -name right \) -prune -o -type f | wc -l
586

The tzcode Makefile menunjukkan bagaimana mereka dihasilkan, dan menyebutkan alasan bagi mereka: posixmengabaikan detik kabisat, righttermasuk mereka.

Lihat juga:


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.