_tzset
Legt die Umgebungsvariablen für die Zeit fest.
Wichtig
Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).
Syntax
void _tzset( void );
Hinweise
Die _tzset
-Funktion verwendet die aktuelle Einstellung der Umgebungsvariablen TZ
, um Werte zu drei globalen Variablen zuzuweisen: _daylight
, _timezone
und _tzname
. Diese Variablen werden von den _ftime
Funktionen localtime
verwendet, um Korrekturen von koordinierter Weltzeit (UTC) in ortszeit und von der time
Funktion zum Berechnen von UTC von Systemzeit zu vornehmen. Verwenden Sie zum Festlegen der TZ
-Umgebungsvariable die folgende Syntax:
set TZ=
tzn
[]hh
[:
-
|mm
+
[:ss
] ][] []dzn
tzn
Dreibuchstabiger Zeitzonenname, z. B. PST. Sie müssen die richtige Verschiebung (Offset) von der Ortszeit zur UTC angeben.
hh
Unterschied in Stunden zwischen UTC und Ortszeit. Das Pluszeichen (+) ist für positive Werte optional.
mm
Minuten. Von hh
durch einen Doppelpunkt (:
) getrennt.
ss
Sekunden. Von mm
durch einen Doppelpunkt (:
) getrennt.
dzn
Dreibuchstabige Sommerzeitzone, z. B. PDT. Wenn es am Ort keine Sommerzeit gibt, legen Sie TZ
ohne einen Wert für dzn
fest. Die C-Laufzeitbibliothek wendet die Regeln der Vereinigten Staaten an, um die Berechnung der Sommerzeit (DST, Daylight Saving Time) zu implementieren.
Hinweis
Seien Sie vorsichtig, wenn Sie das Zeichen des Zeitunterschieds berechnen. Da der Zeitunterschied die Verschiebung von der Ortszeit zu UTC (anstatt umgekehrt) ist, ist das dazugehörige Zeichen gegenüber dem erwarteten möglicherweise das entgegengesetzte. Für Zeitzonen vor UTC ist der Zeitunterschied negativ; für Zeitzonen hinter UTC ist der Unterschied positiv.
Um beispielsweise die TZ
Umgebungsvariable so festzulegen, dass sie der aktuellen Zeitzone in Deutschland entspricht, geben Sie diesen Befehl in der Befehlszeile ein:
TZ=GST-1GDT festlegen
Dieser Befehl verwendet GST, um die deutsche Standardzeit anzugeben. Es geht davon aus, dass UTC eine Stunde hinter Deutschland liegt (oder mit anderen Worten, dass Deutschland eine Stunde vor UTC liegt). Und es geht davon aus, dass Deutschland Sommerzeit beobachtet.
Wenn der TZ
Wert nicht festgelegt ist, wird versucht, _tzset
die vom Betriebssystem angegebenen Zeitzoneninformationen zu verwenden. Im Windows-Betriebssystem werden diese Informationen in der Datum/Uhrzeit-Anwendung in der Systemsteuerung angegeben. Wenn _tzset
diese Informationen nicht abgerufen werden können, wird standardmäßig PST8PDT verwendet, was die Pazifische Zeitzone angibt.
Je nach dem Wert der TZ
-Umgebungsvariablen werden die folgenden Werte den globalen Variablen _daylight
, _timezone
und _tzname
zugewiesen, wenn _tzset
aufgerufen wird:
Globale Variable | Beschreibung | Standardwert |
---|---|---|
_daylight |
Wert ungleich 0 (null), wenn eine Sommerzeitzone in der TZ -Einstellung angegeben ist; andernfalls 0. |
1 |
_timezone |
Unterschied in Sekunden zwischen Ortszeit und UTC. | 28800 (28.800 Sekunden entspricht 8 Stunden) |
_tzname[0] |
Zeichenfolgenwert des Zeitzonennamens aus der TZ Umgebungsvariable; leer, wenn TZ nicht festgelegt. |
PST |
_tzname[1] |
Zeichenfolgenwert der Sommerzeitzone; leer, wenn die Sommerzeitzone bei der TZ -Umgebungsvariablen weggelassen wurde. |
PDT |
Die Standardwerte in der vorherigen Tabelle und _daylight
das _tzname
Array entsprechen "PST8PDT". Wenn die DST-Zone aus der Umgebungsvariable TZ
weggelassen wird, wird der Wert von _daylight
0 und die _ftime
Funktionen localtime
gmtime
0 für ihre DST-Flags zurückgeben.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | Erforderlicher Header |
---|---|
_tzset |
<time.h> |
Die _tzset
Funktion ist microsoftspezifisch. Weitere Informationen finden Sie unter Kompatibilität.
Beispiel
// crt_tzset.cpp
// This program uses _tzset to set the global variables
// named _daylight, _timezone, and _tzname. Since TZ is
// not being explicitly set, it uses the system time.
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
_tzset();
int daylight;
_get_daylight( &daylight );
printf( "_daylight = %d\n", daylight );
long timezone;
_get_timezone( &timezone );
printf( "_timezone = %ld\n", timezone );
size_t s;
char tzname[100];
_get_tzname( &s, tzname, sizeof(tzname), 0 );
printf( "_tzname[0] = %s\n", tzname );
exit( 0 );
}
_daylight = 1
_timezone = 28800
_tzname[0] = Pacific Standard Time
Siehe auch
Zeitverwaltung
asctime
, _wasctime
_ftime
, _ftime32
_ftime64
gmtime
, _gmtime32
_gmtime64
localtime
, _localtime32
_localtime64
time
, _time32
_time64
_utime
, , _utime32
_utime64
, _wutime
, , _wutime32
_wutime64