Zone.tab neden bu kadar çok zaman dilimini yok?


12

Tipik * nix kutunuzda (/ user / share / zoneinfo içinde) binin üzerinde saat dilimi dosyası vardır. Birçoğu sadece son tarihlere ya da sadece şimdiki zamana önem veren programlarla çok az ilgili olan tarihsel tarihlerde farklılık gösterir. Ama ne olursa olsun, orada olan bunların bir ton ve sisteminize yanı sıra TZ ortam değişkeni ayarlayarak belirli bir program ya da kabuk için bunlardan herhangi birini kullanmak için saat dilimi olarak bunlardan birini seçmek için tamamen yasaldır. Hepsi geçerlidir.

Ve sonra zone.tab dosyası (/usr/share/zoneinfo/zone.tab) var. Sadece 400'den fazla saat dilimini listeler (sistemimde 414). Çok fazla zaman dilimi yok. Soru neden? Neden hepsi orada değil? Ve hepsi orada olmadığı için, hangilerinin oraya gireceğine nasıl karar verilir?

zone.tab, listelediği her saat dilimi için bir ülke kodu ve ayrıca boylam ve enlem içerir (muhtemelen dosyanın varlığının nedeni budur) ve tüm saat dilimleri gerçekten bunlara sahip değildir (örneğin UTC'de bunlar yoktur) , ve zone.tab içinde değil), bu yüzden açıkça, her saat dilimi zone.tab içinde listelenemez. Ama neden gerçek bir şehre veya bölgeye karşılık gelenlerin tümü (çoğu gibi) dosyada listelenmiyor? Gerçekte mevcut olan 1000+ yerine neden sadece 414?

Yanıtlar:


6

Zone.tab'ın eklenmesi için yenilenmiş bir sav konusu başlıklı konu , ne zone.tabiçin kullanıldığına dair bazı açıklamalar sunar .

Ana kullanımı, şehirlerin ve konumlarının bir haritasını göstermek, bir kullanıcının yakınlarındaki bir şehri tıklayarak saat dilimini seçmesine izin vermek gibi görünüyor.

Bunu göz önünde bulundurarak, her şehir için tüm takma adları bilmesine gerek yoktur, buna tercih etmenin tercih edilen bir yolunu bilmek yeterlidir. (Ama görünüşe göre her ülkede en az bir şehir var.)

Her bölge için diğer takma adlar tzdata kaynak kodunda saklanır .

Örneğin, backwarddosya

Link    Asia/Kolkata        Asia/Calcutta

böylece insanlar yeni yazımı veya eski yazımı kullanabilirler.

İçindeki diğer tüm dosyalar /usr/share/zoneinfokullanılarak bu kaynak kodundan oluşturulur zic.

Ama 600'den fazla takma ad yok, neden büyük fark var?

: Genellikle üç üretilen her saat diliminin versiyonları var posix, rightve sistem varsayılan.

$ 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

Tzcode Makefile olanlar üretilen ve onlar için bir neden bahseder nasıl gösterir: posixartık saniye görmezden rightdahil eder.

Ayrıca bakınız:


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.