1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245
|
.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date. The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein. The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" References consulted:
.\" Linux libc source code
.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
.\" 386BSD man pages
.\" Modified Sun Jul 25 11:01:58 1993 by Rik Faith (faith@cs.unc.edu)
.\" Modified 2001-11-13, aeb
.\" Translation into German by Walter Harms <walter.harms@informatik.uni-oldenburg.de>
.\"
.\"sync: man-pages 1.70
.\"
.TH TZSET 3 "13. November 2001" "" "Bibliotheksfunktionen"
.SH BEZEICHNUNG
tzset, tzname, timezone, daylight \- initialisiere Zeitzonen-Daten
.SH "ÜBERSICHT"
.B #include <time.h>
.sp
.B void tzset (void);
.sp
.BI "extern char *" tzname [2];
/* Zeitzonenname */
.br
.BI "extern long " timezone ;
/* Sommerzeit-Indikator */
.br
.BI "extern int " daylight ;
/* Abstand zu UTC */
.SH BESCHREIBUNG
Die Funktion
.B tzset
initialisiert
.BR tzname[] ,
.B daylight
und
.B timezone
abhängig
von der Umgebungsvariable
.IR 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
.I timezone
(Sekunden westlich von GMT) sowie
.I 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
.I tzname
mit bestmöglicher
Näherung aus der lokalen "Wall Clock"-Zeit gesetzt. Dabei wird auf die Datei
.I localtime
im systemweiten Zeitzonen-Verzeichnis (siehe unten) zurückgegriffen,
dessen Format in
.BR tzfile (5)
beschrieben wird. (Man sieht häufig auch
.I /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.
.sp
.RS
.I std offset
.RE
.sp
Die Zeichenkette
.I std
definiert den Namen der Zeitzone. Er besteht aus wenigstens
drei Buchstaben. Die Zeichenkette
.I offset
folgt unmittelbar und beschreibt den Wert, der hinzuaddiert werden
muss, um Coordinated Universal Time (UTC) zu erhalten. Der
.I 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.
.sp
.RS
.I std offset dst [offset],start[/time],end[/time]
.RE
.sp
Es sind keine Leerzeichen zwischen den Elementen vorgesehen.
Die ursprünglichen Werte für
.I std
und
.I offset
spezifizieren die Zeitzone wie oben beschrieben. Die Zeichenketten
.I dst
und
.I 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
.I start
definiert den Beginn der Sommerzeit und
.I end
bezeichnet das
Zurückschalten zur Normalzeit. Die Felder können das folgende Format haben:
.sp
.TP
.RI J n
Dies definiert einen Julianischen Tag, wobei
.I n
zwischen 1 und 365 liegt.
Der 29. Februar wird niemals gezählt, auch nicht in Schaltjahren.
.TP
.RI n
.\" FIXME: Wiederholung
Dies definiert einen Julianischen Tag, wobei
.I n
zwischen 1 und 365 liegt.
Der 29. Februar wird niemals gezählt, auch nicht in Schaltjahren.
.TP
.RI M m . w . d
Das definiert
.RS
\- den Tag
.I d
.RI "(0 <= " d " <= 6)"
.RE
.RS
\- der Woche
.I w
.RI "(1 <= " w " <= 5),"
in welcher der Tag
.I d
liegt,
.RE
.RS
\- des Monats
.I m
.RI "(1 <= " m " <= 12)."
Woche 1 ist die erste Woche, in der der Tag
.I d
vorkommt und Woche 5 ist die letzte Woche, in der der Tag
.I d
vorkommt. Tag 0 bezeichnet den Sonntag.
.RE
.TP
Die
.IR time \-Felder beschreiben den Zeitpunkt der jeweils lokalen Zeit,
an dem umgeschaltet wird. Wenn hier
nicht anders definiert gilt die Voreinstellung 02:00:00.
.PP
Das dritte Format besagt, dass die Zeitzonen-Information aus einer Datei
gelesen werden soll.
.sp
.RS
:[filespec]
.RE
.sp
Wird hier keine Datei angegeben, so wird die Datei
.I localtime
im Verzeichnis für die Zeitzonendateien gelesen.
Die Zeitzonendateien finden sich im Verzeichnis
.IR /usr/share/zoneinfo .
Das Dateiformat ist in
.BR tzfile (5)
dokumentiert. Sollte
.I filespec
nicht mit einem `/' beginnen, so wird der Pfad relativ zum Verzeichnis
für Zeitzonendateien angenommen.
.SH DATEIEN
Wo die Daten für die Zeitzonen gesucht werden, ist von der (g)libc Version
abhängig. Libc4 und libc5 verwenden
.I /usr/lib/zoneinfo
und wird seit libc-5.4.6
.I /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
.IR /usr/share/zoneinfo .
Dieses Verzeichnis beinhaltet normalerweise folgende Dateien:
.TP
.I localtime
\- lokale Zeitzonendaten
.TP
.I posixrules
\- Regeln für TZ nach POSIX
.PP
Häufig ist
.I /etc/localtime
ein Link auf die Datei
.I localtime oder auf die korrekte Zonendatei.
.SH "KONFORM ZU"
SVID 3, POSIX, BSD 4.3
.SH ANMERKUNGEN
Beachten Sie bitte, dass die Variable
.I daylight
nicht bedeutet, dass im Moment Sommerzeit herrscht. Sie beschrieb
früher die Nummer eines Algorithmus (siehe Variable
.tz_dsttime
in
.BR gettimeofday (2)).
Sie ist seit mehreren Jahren obsolete, wird jedoch von SUSv2 vorausgesetzt.
BSD4.3 beinhaltete eine Routine
.BI "char *timezone(" zone , dst )\fR,
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.
.SH SIEHE AUCH
.BR date (1),
.BR gettimeofday (2),
.BR time (2),
.BR ctime (3),
.BR getenv (3),
.BR tzfile (5).
|