Provided by:
manpages-de-dev_0.5-2ubuntu1_all 
BEZEICHNUNG
tzset, tzname, timezone, daylight - initialisiere Zeitzonen-Daten
ÜBERSICHT
#include <time.h>
void tzset (void);
extern char *tzname[2]; /* Zeitzonenname */
extern long timezone; /* Sommerzeit-Indikator */
extern int daylight; /* Abstand zu UTC */
BESCHREIBUNG
Die Funktion tzset initialisiert tzname[], daylight und timezone
abhängig von der Umgebungsvariable TZ. Diese Funktion wird automatisch
von anderen Funktionen verwendet, die Zeiten umrechnen und dazu
Informationen zur Zeitzone benötigen. In einer SysV-artigen Umgebung
wird sie auch die Variablen timezone (Sekunden westlich von GMT) sowie
daylight (0, falls diese Zeitzone keine Sommer-/Winterzeit-Regeln
beinhaltet und ungleich 0, falls es eine Zeit des Jahres gibt, in der
Sommer-/Winterzeit-Regeln greifen) setzen.
Sollte die TZ-Variable nicht gesetzt sein, wird tzname mit
bestmöglicher Näherung aus der lokalen "Wall Clock"-Zeit gesetzt.
Dabei wird auf die Datei localtime im systemweiten Zeitzonen-
Verzeichnis (siehe unten) zurückgegriffen, dessen Format in tzfile(5)
beschrieben wird. (Man sieht häufig auch /etc/localtime an dieser
Stelle, ein Symlink zur richtigen Datei im Zeitzonen-Verzeichnis.)
Wenn die TZ-Variable gesetzt ist, jedoch ihr Wert NULL ist oder der
Wert ein Format (siehe unten) hat, welches nicht interpretiert werden
kann, so wird "Coordinated Universal Time" (UTC) benutzt.
Das Programm kennt drei verschiede Formate für TZ. Das erste Format
wird benutzt wenn in der Zeitzone keine Sommerzeit vorgesehen ist.
std offset
Die Zeichenkette std definiert den Namen der Zeitzone. Er besteht aus
wenigstens drei Buchstaben. Die Zeichenkette offset folgt unmittelbar
und beschreibt den Wert, der hinzuaddiert werden muss, um Coordinated
Universal Time (UTC) zu erhalten. Der offset ist positiv für Zeitzonen
westlich vom Null-Meridian (Greenwich) und negativ für Zeitzonen
östlich davon. Die Stunde muss zwischen 0 und 24 liegen, die Minuten
zwischen 0 und 59, die Sekunden ebenfalls. (Nicht alle Systeme machen
das so: AIX kennt auch HH >> 24 )
Das zweite Format ermöglicht es die Sommerzeit mit zu definieren.
std offset dst [offset],start[/time],end[/time]
Es sind keine Leerzeichen zwischen den Elementen vorgesehen. Die
ursprünglichen Werte für std und offset spezifizieren die Zeitzone wie
oben beschrieben. Die Zeichenketten dst und offset bezeichnen den
Namen und Offset der Sommerzeit. Ist der Offset weggelassen wird
angenommen, dass die Sommerzeit eine Stunde in der Zukunft liegt.
Das Feld start definiert den Beginn der Sommerzeit und end bezeichnet
das Zurückschalten zur Normalzeit. Die Felder können das folgende
Format haben:
Jn Dies definiert einen Julianischen Tag, wobei n zwischen 1 und
365 liegt. Der 29. Februar wird niemals gezählt, auch nicht in
Schaltjahren.
n Dies definiert einen Julianischen Tag, wobei n zwischen 1 und
365 liegt. Der 29. Februar wird niemals gezählt, auch nicht in
Schaltjahren.
Mm.w.d Das definiert
- den Tag d (0 <= d <= 6)
- der Woche w (1 <= w <= 5), in welcher der Tag d liegt,
- des Monats m (1 <= m <= 12).
Woche 1 ist die erste Woche, in der der Tag d vorkommt und Woche
5 ist die letzte Woche, in der der Tag d vorkommt. Tag 0
bezeichnet den Sonntag.
Die time-FelderbeschreibendenZeitpunktderjeweilslokalenZeit, an dem
umgeschaltet wird. Wenn hier nicht anders definiert gilt die
Voreinstellung 02:00:00.
Das dritte Format besagt, dass die Zeitzonen-Information aus einer
Datei gelesen werden soll.
:[filespec]
Wird hier keine Datei angegeben, so wird die Datei localtime im
Verzeichnis für die Zeitzonendateien gelesen. Die Zeitzonendateien
finden sich im Verzeichnis /usr/share/zoneinfo. Das Dateiformat ist in
tzfile(5) dokumentiert. Sollte filespec nicht mit einem ‘/’ beginnen,
so wird der Pfad relativ zum Verzeichnis für Zeitzonendateien
angenommen.
DATEIEN
Wo die Daten für die Zeitzonen gesucht werden, ist von der (g)libc
Version abhängig. Libc4 und libc5 verwenden /usr/lib/zoneinfo und wird
seit libc-5.4.6 /usr/share/zoneinfo probieren, wenn das fehlschlägt.
Seit Glibc2 gilt: wenn die Variable TZDIR existiert, wird sie als
Basisverzeichnis benutzt. Die Voreinstellung hängt von der
Installation ab, bedeutet jedoch meistens /usr/share/zoneinfo.
Dieses Verzeichnis beinhaltet normalerweise folgende Dateien:
localtime
- lokale Zeitzonendaten
posixrules
- Regeln für TZ nach POSIX
Häufig ist /etc/localtime ein Link auf die Datei localtime oder auf die
korrekte Zonendatei.
KONFORM ZU
SVID 3, POSIX, BSD 4.3
ANMERKUNGEN
Beachten Sie bitte, dass die Variable daylight nicht bedeutet, dass im
Moment Sommerzeit herrscht. Sie beschrieb früher die Nummer eines
Algorithmus (siehe Variable in gettimeofday(2)). Sie ist seit mehreren
Jahren obsolete, wird jedoch von SUSv2 vorausgesetzt.
BSD4.3 beinhaltete eine Routine char *timezone(zone,dst), die den Namen
der Zeitzone zurückgab, der dem ersten Argument (Minuten westlich von
GMT) entsprach. Wenn das zweite Argument 0 war, wurde der Standard-
Name verwendet, andererseits die Sommerzeit-Version.
SIEHE AUCH
date(1), gettimeofday(2), time(2), ctime(3), getenv(3), tzfile(5).
13. November 2001 TZSET(3)