Sdílet prostřednictvím


_tzset

Nastaví časové proměnné prostředí.

Důležité

Toto rozhraní API nelze použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.

Syntaxe

void _tzset( void );

Poznámky

Funkce _tzset používá aktuální nastavení proměnné TZ prostředí k přiřazení hodnot třem globálním proměnným: _daylight, _timezonea _tzname. Tyto proměnné jsou používány funkcemi _ftime a localtime provádějí opravy od koordinovaného univerzálního času (UTC) do místního času a time funkcí pro výpočet času UTC od systémového času. K nastavení TZ proměnné prostředí použijte následující syntaxi:

set TZ=tzn [+|-]hh[:mm[:ss] ][dzn]

tzn
Třímísmenný název časového pásma, například PST. Je nutné zadat správný posun z místního času na UTC.

hh
Rozdíl v hodinách mezi UTC a místním časem Znaménko (+) volitelné pro kladné hodnoty

mm
Minut. Odděleno hh dvojtečka (:).

ss
Sekund. Odděleno mm dvojtečka (:).

dzn
Třímísmenné letní časové pásmo, jako je PDT. Pokud se letní čas v lokalitě nikdy neprojeví, nastaví TZ se bez hodnoty .dzn Knihovna runtime jazyka C předpokládá pravidla USA pro implementaci výpočtu letního času (DST).

Poznámka

Při výpočtu znaménka časového rozdílu se starají. Vzhledem k tomu, že časový rozdíl je posun z místního času na UTC (nikoli naopak), může být jeho znaménko opakem toho, co byste mohli intuitivně očekávat. V případě časových pásem před UTC je časový rozdíl záporný; pro ty, které stojí za UTC, je rozdíl pozitivní.

Pokud chcete například nastavit TZ proměnnou prostředí tak, aby odpovídala aktuálnímu časovému pásmu v Německu, zadejte tento příkaz na příkazovém řádku:

set TZ=GST-1GDT

Tento příkaz používá GST k označení německého standardního času. Předpokládá se, že UTC je jedna hodina za Německem (nebo jinými slovy, že Německo je o hodinu před UTC). Předpokládá se, že Německo sleduje letní čas.

TZ Pokud hodnota není nastavená, _tzset pokusí se použít informace o časovém pásmu určené operačním systémem. V operačním systému Windows jsou tyto informace zadány v aplikaci Datum a čas v Ovládací panely. Pokud _tzset tyto informace nemůžete získat, používá PST8PDT ve výchozím nastavení, což označuje časové pásmo Tichomoří.

Na TZ základě hodnoty proměnné prostředí jsou následující hodnoty přiřazeny _daylightglobální proměnné , _timezonea _tzname kdy _tzset je volána:

Globální proměnná Popis Default value
_daylight Nenulová hodnota, pokud je v TZ nastavení zadáno letní časové pásmo, jinak 0. 1
_timezone Rozdíl v sekundách mezi místním časem a UTC 28800 (28 800 sekund se rovná 8 hodinám)
_tzname[0] Řetězcová hodnota názvu časového pásma z TZ proměnné prostředí; prázdná, pokud TZ nebyla nastavena. PST
_tzname[1] Řetězcová hodnota letního časového pásma; prázdné, pokud je z proměnné prostředí vynecháno TZ letní časové pásmo. PDT (Tichomořský letní čas)

Výchozí hodnoty uvedené v předchozí tabulce a _daylight_tzname pole odpovídají "PST8PDT". Pokud je zóna DST vynechána z TZ proměnné prostředí, hodnota _daylight je 0 a _ftime, gmtimea localtime funkce vrátí hodnotu 0 pro své příznaky DST.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Požadavky

Rutina Požadovaný hlavičkový soubor
_tzset <time.h>

Funkce _tzset je specifická pro Microsoft. Další informace naleznete v tématu Kompatibilita.

Příklad

// 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

Viz také

Správa času
asctime, _wasctime
_ftime, _ftime32, _ftime64
gmtime, _gmtime32, _gmtime64
localtime, _localtime32, _localtime64
time, _time32, _time64
_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64