Condividi tramite


_tzset

Impostare le variabili di ambiente di tempo.

Importante

Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).

Sintassi

void _tzset( void );

Osservazioni:

La funzione _tzset usa l'impostazione corrente della variabile di ambiente TZ per assegnare valori a tre variabili globali: _daylight, _timezonee _tzname. Queste variabili vengono usate dalle _ftime funzioni e localtime per apportare correzioni dall'ora UTC (Coordinated Universal Time) all'ora locale e dalla funzione per calcolare l'ora UTC dall'ora time di sistema. Usare la sintassi seguente per impostare la variabile di ambiente TZ :

set TZ=tzn [+|-]hh[:mm[:ss] ][dzn]

tzn
Nome del fuso orario di tre lettere, ad esempio PST. È necessario specificare l'offset corretto dall'ora locale all'ora UTC.

hh
La differenza in ore tra l'ora UTC e l'ora locale. Segno più (+) facoltativo per i valori positivi.

mm
Minuti. Separato da hh da due punti (:).

ss
Secondi. Separato da mm da due punti (:).

dzn
Fuso orario con l'ora legale di tre lettere, ad esempio PDT. Se l'ora legale non è mai attiva nella località, impostare TZ senza un valore per dzn. La libreria di runtime C presupporrà le regole relative agli Stati Uniti per implementare il calcolo dell'ora legale (DST).

Nota

Prestare attenzione nel calcolare il segno della differenza di tempo. Dal momento che la differenza di tempo è l'offset dall'ora locale all'ora UTC (anziché viceversa), il relativo segno potrebbe essere l'opposto di quanto ci si potrebbe intuitivamente aspettare. Per i fusi orari avanti rispetto all'ora UTC, la differenza di tempo è negativa; per quelli che sono indietro rispetto all'ora UTC, la differenza è positiva.

Ad esempio, per impostare la TZ variabile di ambiente in modo che corrisponda al fuso orario corrente in Germania, immettere questo comando nella riga di comando:

set TZ=GST-1GDT

Questo comando usa GST per indicare l'ora solare tedesca. Si presuppone che l'ora UTC sia un'ora dietro la Germania (o, in altre parole, che la Germania sia un'ora prima dell'ora UTC). E presuppone che la Germania osservi l'ora legale.

Se il TZ valore non è impostato, _tzset tenta di usare le informazioni sul fuso orario specificate dal sistema operativo. Nel sistema operativo Windows, queste informazioni vengono specificate nell'applicazione Data/Ora nel Pannello di controllo. Se _tzset non riesce a ottenere queste informazioni, usa PST8PDT per impostazione predefinita, che indica il fuso orario pacifico.

In base al valore della variabile di ambiente TZ , i valori seguenti vengono assegnati alle variabili globali _daylight, _timezonee _tzname quando _tzset viene chiamato:

Variabile globale Descrizione Default value
_daylight Valore diverso da zero se è specificato un fuso orario con l'ora legale nell'impostazione TZ ; in caso contrario, 0. 1
_timezone La differenza in secondi tra l'ora locale e l'ora UTC. 28800 (28.800 secondi è uguale a 8 ore)
_tzname[0] Valore stringa del nome del fuso orario dalla TZ variabile di ambiente; vuoto se TZ non è stato impostato. PST
_tzname[1] Valore di stringa del fuso orario con l'ora legale; vuoto se il fuso orario con l'ora legale viene omesso dalla variabile di ambiente TZ . PDT

I valori predefiniti visualizzati nella tabella precedente per _daylight e la _tzname matrice corrispondono a "PST8PDT". Se la zona DST viene omessa dalla TZ variabile di ambiente, il valore di _daylight è 0 e le _ftimefunzioni , gmtimee localtime restituiscono 0 per i flag DST.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Ciclo Intestazione obbligatoria
_tzset <time.h>

La _tzset funzione è specifica di Microsoft. Per altre informazioni, vedere Compatibility.

Esempio

// 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

Vedi anche

Gestione orari
asctime, _wasctime
_ftime, _ftime32, _ftime64
gmtime, _gmtime32, _gmtime64
localtime, _localtime32, _localtime64
time, _time32, _time64
_utime, _utime32, _utime64, _wutime, _wutime32_wutime64