Warum fehlen in zone.tab so viele Zeitzonen?

Warum fehlen in zone.tab so viele Zeitzonen?

Auf einem typischen *nix-Rechner (in /user/share/zoneinfo) gibt es über tausend Zeitzonendateien. Viele davon unterscheiden sich nur in historischen Daten, was für Programme, die sich nur für aktuelle Daten interessieren - oder sogar nur für die aktuelle Zeit - wenig relevant ist. Aber unabhängig davon gibt esSindEs gibt eine Menge davon, und es ist völlig legal, eine davon als Zeitzone für Ihr System auszuwählen sowie eine davon für ein bestimmtes Programm oder eine Shell zu verwenden, indem Sie die Umgebungsvariable TZ festlegen. Sie sind alle gültig.

Und dann gibt es noch die Datei zone.tab (/usr/share/zoneinfo/zone.tab). Sie listet nur etwas über 400 Zeitzonen auf (414 auf meinem System). Es fehlt einvielvon Zeitzonen. Die Frage ist also, warum? Warum sind sie nicht alle dort drin? Und da sie nicht alle dort drin sind, wie wird entschieden, welche dort drin sind?

zone.tab enthält einen Ländercode sowie Längen- und Breitengrad für jede aufgeführte Zeitzone (was vermutlich der Grund für die Existenz der Datei ist) und nichtalleZeitzonen haben diese wirklich (z. B. UTC hat diese nicht, und es ist nicht in zone.tab), also klar, nichtjedenZeitzonen können in zone.tab aufgelistet werden. Aber warum sind nicht alle, die einer tatsächlichen Stadt oder Region entsprechen (wie die meisten), in der Datei aufgeführt? Warum nur 414 statt der über 1000, die tatsächlich verfügbar sind?

Antwort1

Ein Thread mit dem TitelEin erneuter Appell für die Aufnahme von zone.tabbietet einige Erklärungen, wofür es zone.tabverwendet wird.

Sein Hauptzweck scheint darin zu bestehen, eine Karte mit Städten und ihren Standorten anzuzeigen, sodass ein Benutzer seine Zeitzone auswählen kann, indem er auf eine Stadt in der Nähe klickt.

In diesem Sinne muss es nicht alle Aliase für jede Stadt kennen, es reicht aus, eine bevorzugte Bezeichnung zu kennen. (Aber es sieht so aus, als ob es immer mindestens eine Stadt in jedem Land enthält.)

Die anderen Aliase für jede Zone werden gespeichert intzdataQuellcode.

backwardDie Datei hat beispielsweise

Link    Asia/Kolkata        Asia/Calcutta

damit die Leute die neue oder die alte Schreibweise verwenden können.

Alle anderen Dateien /usr/share/zoneinfowerden aus diesem Quellcode mithilfe von generiert zic.

Es gibt aber nicht mehr als 600 Aliase. Warum also der große Unterschied?

Normalerweise werden drei Versionen jeder Zeitzone generiert: posix, rightund die Standardversion Ihres Systems.

$ 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

Dertzcode Makefilezeigt, wie diese generiert werden, und nennt den Grund dafür: posixSchaltsekunden werden ignoriert und righteingeschlossen.

Siehe auch:

Antwort2

Über den folgenden Linkhttp://en.wikipedia.org/wiki/Tz_database

Die Zeitzonendatenbank wird jetzt von der Internet Assigned Numbers Authority verwaltet.

verwandte Informationen