_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 unter CRT-Funktionen nicht mit /ZW unterstützt.
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 Funktionen _ftime und localtime verwendet, um Korrekturen von der koordinierten Weltzeit (UTC) zur Ortszeit zu unterstützen, und von der Funktion time, um die UTC aus der Systemzeit zu ermitteln. 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 entsprechend der aktuellen Zeitzone in Deutschland festzulegen, geben Sie in die Befehlszeile Folgendes ein:
set TZ=GST-1GDT
Dieser Befehl verwendet GST zur Angabe der deutschen Normalzeit und setzt voraus, dass UTC eine Stunde hinter Deutschland (oder Deutschland eine Stunde vor UTC) ist, und dass Deutschland die Sommerzeit berücksichtigt.
Wenn der Wert TZ nicht festgelegt ist, versucht _tzset die vom Betriebssystem festgelegten Zeitzonendaten zu verwenden. Im Windows-Betriebssystem werden diese Informationen in der Datum/Uhrzeit-Anwendung in der Systemsteuerung angegeben. Wenn _tzset diese Informationen nicht abrufen kann, wird standardmäßig die Zeitzone PST8PDT (Pacific Time) verwendet.
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 (28800 Sekunden sind gleich 8 Stunden) |
_tzname[0] |
Zeichenfolgenwert des Zeitzonennamens der TZ-Umgebungsvariablen; leer, wenn TZ nicht festgelegt wurde. |
PST |
_tzname[1] |
Zeichenfolgenwert der Sommerzeitzone; leer, wenn die Sommerzeitzone bei der TZ-Umgebungsvariablen weggelassen wurde. |
PDT |
Die in der vorangehenden Tabelle aufgeführten Standardwerte für _daylight und das _tzname-Array entsprechen "PST8PDT." Wenn die DST-Zone in der TZ-Umgebungsvariablen weggelassen wird, ist der Wert von _daylight 0 und die Funktionen _ftime, gmtime und localtime geben für ihre jeweiligen DST-Flags 0 zurück.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_tzset |
<time.h> |
Weitere Informationen finden Sie unterKompatibilitä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 );
}
.NET Framework-Entsprechung
Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.