_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, _timezoneund _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 dznfest. 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, _timezoneund _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 _ftimeFunktionen localtimegmtime0 für ihre DST-Flags zurückgeben.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the 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