_tzset
Nastavujte časové proměnné prostředí.
Důležité |
---|
Toto API nelze použít v aplikacích, které jsou spuštěny v modulu Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW. |
void _tzset( void );
Poznámky
Funkce _tzset používá aktuální nastavení proměnné prostředí TZ k přiřazení hodnot ke třem globálním proměnným: _daylight, _timezone a _tzname.Tyto proměnné jsou používány funkcemi _ftime a localtime pro provedení korekcí od koordinovaného univerzálního času (UTC) a funkcí time pro vypočítání UTC ze systémového času.Použijte následující syntax k nastavení proměnné prostředí TZ:
setTZ=tzn[+ | –]hh[:mm[:ss] ][dzn]
tzn
Třípísmenný název časového pásma, např. PST.Je nutné zadat správný posun od místního času k času UTC.hh
Rozdíl v hodinách mezi místním časem a UTC.Znaménko (+) je pro kladné hodnoty volitelné.mm
Minuty.Odděleny od hh dvojtečkou (:).ss
Sekundy.Odděleny od mm dvojtečkou (:).dzn
Třípísmenné časové pásmo s letním časem, např. PDT.Pokud se v oblasti letní čas nepoužívá, nastavte TZ bez hodnoty pro dzn.Knihovna runtime jazyka C předpokládá, že jsou použita pravidla Spojených států pro implementaci výpočtu letního času (DST).
[!POZNÁMKA]
Dejte si pozor při výpočtu znaménka časového rozdílu.Protože časový rozdíl je posun z místního času na UTC (spíše než naopak), jeho znaménko může být opakem toho, co intuitivně očekáváte.Pro časová pásma před časem UTC je časový rozdíl záporný; pro ta za UTC je časový rozdíl kladný.
Chcete-li například nastavit proměnnou prostředí TZ tak, aby odpovídala aktuálnímu časovému pásmu v Německu, zadejte na příkazovém řádku následující:
set TZ=GST-1GDT
Tento příkaz používá GST k označení německého standardního času, předpokládá, že čas UTC je jednu hodinu za Německem (nebo jinými slovy, že Německo je hodinu napřed před časem UTC) a předpokládá, že Německo dodržuje letní čas.
Pokud hodnota TZ není nastavena, _tzset se pokusí použít informace o časovém pásmu, který je určen pro operační systém.V operačním systému Windows je tato informace zadána v aplikaci Datum/čas v okně Ovládací panely.Pokud _tzset nemůže získat tyto informace, použije PST8PDT ve výchozím nastavení, což znamená tichomořské časové pásmo.
Na základě hodnoty proměnné prostředí TZ jsou následující hodnoty přiřazeny globálním proměnným _daylight, _timezone a _tzname, když je volána _tzset:
Globální proměnná |
Description |
Výchozí hodnota |
---|---|---|
_daylight |
Nenulová hodnota, pokud je v nastavení TZ určeno pásmo s letním časem, jinak 0. |
1 |
_timezone |
Rozdíl v sekundách mezi místním časem a UTC. |
28800 (28800 sekund se rovná 8 hodin) |
_tzname[0] |
Řetězcová hodnota názvu časového pásma z proměnné prostředí TZ; prázdná, pokud TZ nebyla nastavena. |
PST |
_tzname[1] |
Hodnota řetězce pásma letního času; prázdný, pokud je pásmo letního času vynecháno z proměnné prostředí TZ. |
PDT |
Výchozí hodnoty uvedené v předchozí tabulce pro _daylight a pole _tzname pole odpovídají „PST8PDT“. Pokud je zóna letního času vynechána z proměnné prostředí TZ, hodnota _daylight je 0 a funkce _ftime, gmtime a localtime vrátí 0 pro jejich příznaky letního času.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_tzset |
<time.h> |
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 );
}
Ekvivalent v rozhraní .NET Framework
Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.