_tzset
Ustawia zmienne środowiskowe czasu.
Ważne
Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.
Składnia
void _tzset( void );
Uwagi
Funkcja _tzset
używa bieżącego ustawienia zmiennej TZ
środowiskowej do przypisywania wartości do trzech zmiennych globalnych: _daylight
, _timezone
i _tzname
. Te zmienne są używane przez _ftime
funkcje i localtime
do dokonywania poprawek z uniwersalnego czasu koordynowanego (UTC) do czasu lokalnego time
, a także przez funkcję do obliczania czasu UTC od czasu systemowego. Użyj następującej składni, aby ustawić zmienną środowiskową TZ
:
set TZ=
tzn
[+
-
|]hh
[[mm
:
:ss
] ][dzn
]
tzn
Trzyliterowa nazwa strefy czasowej, taka jak PST. Należy określić poprawne przesunięcie od czasu lokalnego do czasu UTC.
hh
Różnica w godzinach między godzinami UTC i czasem lokalnym. Znak (+) opcjonalny dla wartości dodatnich.
mm
Protokół. Oddzielone dwukropkiem hh
(:
).
ss
Sekund. Oddzielone dwukropkiem mm
(:
).
dzn
Trzyliterowa strefa czasowa, taka jak PDT. Jeśli czas letni nigdy nie jest w mocy w lokalizacji, ustaw TZ
bez wartości .dzn
Biblioteka języka C w czasie wykonywania zakłada reguły Stany Zjednoczone dotyczące implementowania obliczania czasu letniego (DST).
Uwaga
Należy zachować ostrożność podczas obliczania znaku różnicy czasu. Ponieważ różnica czasu jest przesunięciem od czasu lokalnego do CZASU UTC (a nie odwrotnym), jego znak może być przeciwieństwem tego, czego można intuicyjnie oczekiwać. W przypadku stref czasowych przed UTC różnica czasu jest ujemna; dla osób za UTC różnica jest dodatnia.
Aby na przykład ustawić zmienną TZ
środowiskową odpowiadającą bieżącej strefie czasowej w Niemczech, wprowadź to polecenie w wierszu polecenia:
set TZ=GST-1GDT
To polecenie używa GST do wskazania niemieckiego czasu standardowego. Przyjęto założenie, że utc jest godziną za Niemcami (lub innymi słowy, że Niemcy są o jedną godzinę przed UTC). Zakłada się również, że Niemcy obserwują czas letni.
TZ
Jeśli wartość nie jest ustawiona, _tzset
próbuje użyć informacji o strefie czasowej określonej przez system operacyjny. W systemie operacyjnym Windows te informacje są określone w aplikacji data/godzina w Panel sterowania. Jeśli _tzset
nie można uzyskać tych informacji, domyślnie używa PST8PDT, co oznacza strefę czasową pacyficznego.
Na podstawie wartości zmiennej TZ
środowiskowej następujące wartości są przypisywane do zmiennych globalnych _daylight
, _timezone
i _tzname
, gdy _tzset
jest wywoływana:
Zmienna globalna | opis | Domyślna wartość |
---|---|---|
_daylight |
Wartość niezerowa, jeśli w ustawieniu określono TZ strefę czasową oszczędzania światła dziennego; w przeciwnym razie 0. |
1 |
_timezone |
Różnica w sekundach między czasem lokalnym a utc. | 28800 (28 800 sekund jest równe 8 godzin) |
_tzname[0] |
Wartość ciągu nazwy strefy czasowej ze TZ zmiennej środowiskowej; pusta, jeśli TZ nie została ustawiona. |
PST |
_tzname[1] |
Wartość ciągu strefy czasowej oszczędzania światła dziennego; wartość pusta, jeśli strefa czasowa oszczędzająca czas zostanie pominięta ze TZ zmiennej środowiskowej. |
PDT |
Wartości domyślne pokazane w poprzedniej tabeli i _daylight
tablica _tzname
odpowiadają wartościom "PST8PDT". Jeśli strefa DST zostanie pominięta ze zmiennej środowiskowej TZ
, wartość _daylight
to 0, a _ftime
funkcje , gmtime
i localtime
zwracają wartość 0 dla flag DST.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_tzset |
<time.h> |
Funkcja jest specyficzna _tzset
dla firmy Microsoft. Aby uzyskać więcej informacji, zobacz Zgodność.
Przykład
// 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
Zobacz też
Zarządzanie czasem
asctime
, _wasctime
_ftime
, , _ftime32
_ftime64
gmtime
, , _gmtime32
_gmtime64
localtime
, , _localtime32
_localtime64
time
, , _time32
_time64
_utime
, , _utime32
, _utime64
, _wutime
, , _wutime32
_wutime64