Udostępnij za pośrednictwem


_tzset

Ustawia zmienne środowiskowe.

Ważna uwagaWaż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.

Zobacz też

Informacje

Zarządzanie czasem

asctime, _wasctime

_ftime, _ftime32, _ftime64

gmtime, _gmtime32, _gmtime64

localtime, _localtime32, _localtime64

time, _time32, _time64

_utime, _utime32 _utime64, _wutime, _wutime32, _wutime64