_tzset
Ustawia zmienne środowiskowe.
Ważne |
---|
Tego API nie można używać w aplikacjach korzystających ze środowiska wykonawczego Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /ZW. |
void _tzset( void );
Uwagi
_tzset funkcja używa bieżącego ustawienia zmiennej środowiskowej TZ przypisywania wartości do trzech zmiennych globalnych: _daylight, _timezone, i _tzname.Te zmienne one używane przez _ftime i localtime funkcje do wprowadzania poprawek od skoordynowanego czasu uniwersalnego (UTC), do czasu lokalnego i w time funkcji do obliczania czasu UTC od czasu systemowego.Użyj następującej składni, aby ustawić TZ zmienną środowiskową:
setTZ=tzn[+ | –]hh[:mm[:ss] ][dzn]
tzn
Trzyliterowa nazwa strefy zmiany czasu, taka jak PDT.Należy określić poprawne przesunięcie od czasu lokalnego na UTC.hh
Różnica w godzinach między czasem UTC i czasem lokalnym.Znak (+) opcjonalny wartości dodatnich.mm
Minuty.Oddzielony od hh za pomocą dwukropka (:).ss
Sekundy.Oddzielony od mm za pomocą dwukropka (:).dzn
Trzyliterowe strefy zmiany czasu takie jak PDT.Jeśli czas letni nigdy nie obowiązuje w tej lokalizacji, ustaw TZ bez wartości dla dzn.Biblioteki wykonawcze C zakładają, że używane są zasady Stanów Zjednoczonych wykonywania obliczeń czasu letniego (DST).
[!UWAGA]
Bądź ostrożny przy obliczaniu znaku różnicy czasu.Ponieważ różnica czasu jest przesunięta względem czasu lokalnego do UTC (a nie odwrotnie), jej znak może być przeciwieństwem tego, co można intuicyjnie oczekiwać.Dla stref czasowych przed UTC różnica czasu jest ujemna; dla tych za UTC różnica jest dodatnia.
Na przykład, aby ustawić zmienną środowiskową TZ, aby odpowiadała bieżącej strefie czasowej w Niemczech, wprowadź następujące polecenie w wierszu polecenia:
set TZ=GST-1GDT
To polecenie używa GST do wskazania niemieckiego czasu standardowego, zakładając, że UTC jest jedną godzinę za Niemcami (lub innymi słowy, których Niemicy są jedną godzinę wcześniej przed UTC) i zakłada się, że Niemcy przestrzegają czasu letniego.
Jeśli wartość TZ nie została ustawiona, _tzset próbuje użyć informacji o strefie czasowej określonych przez system operacyjny.W systemie operacyjnym Windows informacja ta jest określona w aplikacji Data/Godzina w panelu sterowania.Jeśli _tzset nie może uzyskać tych informacji, używa PST8PDT domyślnie, co oznacza strefy czasu pacyficznego.
Na podstawie wartości zmiennej środowiska TZ, następujące wartości są przypisane do zmiennych globalnych _daylight, _timezone i _tzname po wywołaniu _tzset:
Zmienna globalna |
Opis |
Wartość domyślna |
---|---|---|
_daylight |
Wartość niezerowa, jeśli strefa zmiany czasu jest określona w ustawieniu TZ; w przeciwnym razie 0. |
1 |
_timezone |
Różnica w sekundach między czasem lokalnym i czasem UTC. |
28800 (28800 sekund jest równych 8 godzinom) |
_tzname[0] |
Wartość o nazwie strefy czasowej z ciągu TZ zmiennej środowiskowej; pusta jeżeli TZ nie została ustawiona. |
PST |
_tzname[1] |
Wartość ciągu zmiany czasu strefy; pusta, jeśli zmiany czasu strefy pominięto w TZ zmiennej środowiskowej. |
PDT |
Wartości domyślne, pokazana w powyższej tabeli dla _daylight i _tzname tablicy odpowiada "PST8PDT." Jeśli pominięto strefę czasu letniego w zmiennej środowiskowej TZ, wartość _daylight wynosi 0 i funkcje _ftime, gmtime oraz localtime zwracają wartość 0 dla swoich flag czasu letniego.
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
_tzset |
<czas.h> |
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 );
}
Odpowiednik w programie .NET Framework
Nie dotyczy. Aby wywołać standardową funkcję C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywoływania platformy.