_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
, _timezone
a _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
Minuty. Odděleno hh
dvojtečka (:
).
ss
Sekundy. 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 _daylight
globální proměnné , _timezone
a _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. |
0 |
_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
, gmtime
a 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