_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
, _timezone
e _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
, _timezone
e _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 _ftime
funzioni , gmtime
e 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