TZFILE(5)

BEZEICHNUNG
tzfile - Zeitzonen-Informationen

BESCHREIBUNG
Diese Seite beschreibt die Struktur der Zeitzonen-Dateien, die von tzset(3) verwandt werden. Diese Dateien können typischerweise in /usr/lib/zoneinfo oder /usr/share/zoneinfo gefunden werden.

Die Zeitzoneninformationsdateien beginnen mit den magischen Zeichen »TZif«, welches sie als Zeitzonen-Informationsdateien identifiziert. Ihnen folgt (Stand 2005) ein Zeichen zur Identifikation des Dateiformats (entweder ein ASCII-NUL (»\0«) oder eine »2«). Die darauf folgenden 15 Byte enthalten Nullen und sind für eine zukünftige Verwendung reserviert. Danach folgen sechs vier-Byte-Werte des Typs long. Die Daten werden in einer »Standard«-Byteordnung geschrieben (die höherwertigen Bytes zuerst). Die sechs Werte bedeuten:

tzh_ttisgmtcnt
    Anzahl der in der Datei hinterlegten UTC-/Lokal-Kennziffern

tzh_ttisstdcnt
    Anzahl der in der Datei gespeicherten Standard-/Wall-Kennziffern

tzh_leapcnt
    Anzahl der Schaltsekunden, für die Angaben in der Datei gespeichert sind

tzh_timecnt
    Anzahl der »Übergangszeiten« (transition times), für die Angaben in der Datei gespeichert sind

tzh_typecnt
    Anzahl der »lokalen Zeit-Typen«, für die Informationen in der Datei gespeichert sind (darf nicht Null sein)

tzh_charcnt
    Anzahl der Zeichen für in der Datei gespeicherte Zeitzonen-Abkürzungen (timezone abbreviation strings)

Nach diesem Header folgen tzh_timecnt 4-Byte-Werte vom Typ long, nach steigender Wertigkeit sortiert. Auch sie werden in der Standard-Byteordnung geschrieben. Jeder Wert wird als Zeitpunkt (wie sie von time(2) zurückgegeben wird) verwendet, zu dem sich die Regeln für die Berechnung der lokalen Zeit ändern. Darauf folgen tzh_timecnt Werte vom Typ unsigned char. Jeder dieser Werte besagt, welcher der verschiedenen, in der Datei beschriebenen lokalen Zeit-Typen, mit dem Wechsel der Zeitberechnung mit dem gleichen Index verknüpft ist. Die Werte dienen als Indizes für ein Feld von ttinfo-Strukturen (mit tzh_typecnt Einträgen). Diese Strukturen sind wie folgt definiert:

struct ttinfo {
    long         tt_gmtoff;
    int          tt_isdst;
    unsigned int tt_abbrind;
};

Jede Struktur besteht aus einem 4-Byte-Wert für tt_gmtoff vom Typ long, geschrieben in einer Standard-Bytefolge, gefolgt von den 1-Byte-Werten für tt_isdst und für tt_abbrind. In jeder Struktur legt tt_gmtoff die Anzahl Sekunden fest, die zu UTC addiert werden, tt_isdst bestimmt, ob tm_isdst von localtime(3) gesetzt werden soll und tt_abbrind entspricht dem Index im Feld der Abkürzungszeichen für Zeitzonen, die den ttinfo-Strukturen in der Datei folgen.

Als Nächstes gibt es tzh_leapcnt Paare von 4-Byte-Werten, geschrieben in Standard-Bytefolge. Der erste Wert jedes Paares bezeichnet den Zeitpunkt (Rückgabewert von time(2)), zu dem die Schaltsekunden auftreten. Der zweite bestimmt die gesamte Anzahl der Schaltsekunden, die nach der angegebenen Zeit eingelegt werden sollen. Die Wertepaare sind in aufsteigender Folge nach der Zeit sortiert.

Nun folgen tzh_ttisstdcnt Standard-/Wall-Kennziffern, jede wird als 1-Byte-Wert gespeichert. Sie geben an, ob die Übergangszeiten, die den lokalen Zeit-Typen zugeordnet sind, als Standard-Zeit oder als »wall clock time« angegeben wurden. Sie werden verwendet, wenn eine Zonendatei für die Verarbeitung POSIX-artiger Zeitzonen-Umgebungsvariablen eingesetzt wird.

Schließlich gibt es tzh_ttisgmtcnt UTC-/Lokal-Kennziffern, jeder als 1-Byte-Wert gespeichert. Sie besagen, ob die den lokalen Zeit-Typen zugeordneten Übergangszeiten als UTC oder als lokale Zeit angegeben wurden. Sie werden verwendet, wenn eine Zonendatei für die Verarbeitung POSIX-artiger Zeitzonen-Umgebungsvariablen eingesetzt wird.

localtime(3) verwendet den ersten ttinfo-Eintrag für Standardzeit in der Datei (oder einfach den ersten ttinfo-Eintrag, wenn kein Standardzeit-Eintrag existiert), wenn entweder tzh_timecnt Null ist oder das Zeit-Argument kleiner ist als der erste in der Datei abgelegte Übergangszeitpunkt.

ANMERKUNGEN
Diese Handbuchseite beschreibt <tzfile.h> aus dem Glibc-Quelltext (siehe timezone/tzfile.h).

Es scheint, dass timezone tzfile intern verwendet, aber Glibc das nicht in der Anwendungsebene verfügbar macht. Das ist sehr wahrscheinlich, weil die standardisierten Funktionen sinnvoller, besser portierbar und tatsächlich von Glibc dokumentiert sind. Es ist vielleicht nur in Glibc enthalten, nur um die nicht von Glibc (sondern einer anderen Organisation) gepflegten Zeitzonendaten zu unterstützen.

SIEHE AUCH
time(3), gettimeofday(3), tzset(3), ctime(3)

Für Zeitzonen-Dateien im Version-2-Format folgen dem oben Beschriebenen (Vorspann und Daten) ein zweiter Vorspann und Daten in einem ähnlichen Format. Der Unterschied besteht darin, dass die Übergangszeiten und Schaltsekundenzeiten jeweils mit jeweils acht Byte kodiert werden. Nach dem zweiten Header und den Daten folgt eine durch Zeilenumbrüche abgetrennte Zeichenkette im Stil von POSIX-Zeitzonen-Umgebungsvariablen. Sie ist für die Behandlung der Momente nach der letzten in der Datei gespeicherten Übergangszeit bestimmt. (Wenn es keine POSIX-Darstellung für solche Momente gibt, ist die Zeichenkette leer.)

SIEHE AUCH
ctime(3), tzset(3), tzselect(8),

timezone/tzfile.h in dem Glibc-Quellcode.

KOLOPHON
This page is part of release 3.54 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.