Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
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 _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. |
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, 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