_tzset
Imposta le variabili di ambiente di tempo.
Importante
Questa API non può essere utilizzata nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.
void _tzset( void );
Note
La funzione _tzset utilizza l'impostazione corrente della variabile di ambiente TZ per assegnare valori a tre variabili globali: _daylight, _timezone e _tzname. Queste variabili vengono utilizzate dalle funzioni localtime e _ftime per apportare modifiche a partire dal tempo coordinato universale (UTC) all'ora locale, e dalla funzione time per calcolare l'ora UTC dall'ora di sistema. Utilizzare la sintassi seguente per impostare la variabile d'ambiente TZ :
set TZ=tzn[+ | –]hh[:mm[:ss] ][dzn]
tzn
Nome di tre lettere del fuso orario, come PST. È necessario specificare l'offset corretto dall'ora locale all'ora UTC.hh
Differenza in ore tra l'ora UTC e l'ora locale. Segno (+) facoltativo per i valori positivi.mm
Minuti. Separato da hh da due punti (:).ss
Secondi. Separato da mm da due punti (:).dzn
Fuso di ora legale di tre lettere come PDT. Se l'ora legale non è mai in uso nella località, impostare TZ senza un valore per dzn. La libreria di runtime C utilizza le direttive degli Stati Uniti per implementare il calcolo dell'ora legale (DST).
Nota
Si consideri nella visualizzazione nella computazione il segno della differenza di tempo.Poiché la differenza di ora è l'offset dall'ora locale all'ora UTC (anziché del contrario), il simbolo può essere l'opposto di quello previsto.Per i fusi orari avanti rispetto a UTC, la differenza di ora è negativa; per quelli indietro rispetto all'ora UTC, la differenza è positiva.
Ad esempio, per impostare la variabile di ambiente TZ in base al fuso orario corrente in Germania, digitare quanto segue nella riga di comando:
set TZ=GST-1GDT
Questo comando utilizza il GST per leggere l'ora tedesca standard, presuppone che l'ora UTC sia un'ora indietro in Germania (o, in altre parole, che la Germania sia un'ora avanti rispetto a UTC) e presuppone che la Germania osservi l'ora legale.
Se il valore TZ non è impostato, _tzset tenta di utilizzare le informazioni del 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 può ottenere queste informazioni, utilizza PST8PDT per impostazione predefinita, ovvero il fuso orario del Pacifico.
In base al valore della variabile di ambiente TZ, i valori seguenti vengono assegnati alle variabili globali _daylight, _timezone e _tzname quando viene chiamato _tzset :
Variabile globale |
Descrizione |
Valore predefinito |
---|---|---|
_daylight |
Valore diverso da zero se un fuso di ora legale viene specificato nell'impostazione TZ ; in caso contrario, 0. |
1 |
_timezone |
Differenza in secondi tra l'ora locale e l'ora UTC. |
28800 (28800 secondi equivalgono a 8 ore) |
_tzname[0] |
Stringa del nome del fuso orario dalla variabile d'ambiente TZ ; vuota se TZ non è stato impostato. |
PST |
_tzname[1] |
Stringa del fuso di ora legale; vuota se il fuso di ora legale viene omesso dalla variabile d'ambiente TZ. |
PDT |
I valori predefiniti indicati nella tabella precedente per _daylight e la matrice _tzname corrispondono a "PST8PDT". Se l'area DST viene omessa dalla variabile d'ambiente TZ, il valore di _daylight è 0 e le funzioni _ftime, gmtime e localtime restituiscono 0 per i loro flag DST.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_tzset |
<time.h> |
Per ulteriori informazioni, vedere Compatibilità.
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 );
}
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.