Freigeben über


_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.

Siehe auch

Referenz

Uhrzeitverwaltung

asctime, _wasctime

_ftime, _ftime32, _ftime64

gmtime, _gmtime32, _gmtime64

localtime, _localtime32, _localtime64

time, _time32, _time64

_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64