_get_tzname
Recupera la rappresentazione di stringa di caratteri del nome del fuso orario o del nome della zona dell'ora legale (DST).
Sintassi
errno_t _get_tzname(
size_t* pReturnValue,
char* timeZoneName,
size_t sizeInBytes,
int index
);
Parametri
pReturnValue
Lunghezza della stringa di inclusione di un NULL
carattere di timeZoneName
terminazione.
timeZoneName
Indirizzo di una stringa di caratteri per la rappresentazione del nome del fuso orario o del nome del fuso orario dell'ora legale, a seconda di index
.
sizeInBytes
Dimensioni della stringa di caratteri timeZoneName
in byte.
index
Oggetto index
di uno dei due nomi di fuso orario da recuperare.
index |
Contenuto di timeZoneName |
Valore predefinito di timeZoneName |
---|---|---|
0 | Nome del fuso orario | "PST" |
1 | Nome del fuso orario dell'ora legale | "PDT" |
> 1 o < 0 | errno impostato su EINVAL |
non modificato |
A meno che non venga aggiornato in modo esplicito durante il runtime, "PST"
viene restituito per il fuso orario standard e "PDT"
per il fuso orario solare legale. Per altre informazioni, vedere la sezione Osservazioni.
La stringa del fuso orario non è garantita come la stessa tra le versioni del sistema operativo. I nomi ufficiali del fuso orario possono e cambiare.
Valore restituito
Zero in caso di esito positivo. Un valore di tipo errno
in caso contrario.
timeZoneName
Se è o sizeInBytes
è NULL
zero o minore di zero (ma non entrambi), viene richiamato un gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, la funzione imposta errno
suEINVAL
e restituisce EINVAL
.
Condizioni di errore
pReturnValue |
timeZoneName |
sizeInBytes |
index |
Valore restituito | Contenuto di timeZoneName |
---|---|---|---|---|---|
Dimensioni del nome del fuso orario | NULL |
0 | 0 o 1 | 0 | non modificato |
Dimensioni del nome del fuso orario | qualsiasi | > 0 | 0 o 1 | 0 | Nome del fuso orario |
non modificato | NULL |
> 0 | qualsiasi | EINVAL |
non modificato |
non modificato | qualsiasi | zero | qualsiasi | EINVAL |
non modificato |
non modificato | qualsiasi | > 0 | > 1 | EINVAL |
non modificato |
Osservazioni:
La _get_tzname
funzione recupera la rappresentazione di stringa di caratteri del nome del fuso orario corrente o del nome del fuso orario legale (DST) nell'indirizzo di timeZoneName
a seconda del index
valore, insieme alle dimensioni della stringa in pReturnValue
. Se timeZoneName
è e è NULL
zero sizeInBytes
, la dimensione della stringa in byte necessaria per contenere sia il fuso orario specificato che un oggetto terminante NULL
viene restituito in pReturnValue
.
I valori devono essere 0 per il fuso orario standard o 1 per il fuso orario solare legale. Tutti index
gli altri valori hanno risultati non determini.
Per impostazione predefinita, "PST"
viene restituito per il fuso orario standard e "PDT"
per il fuso orario solare. Il nome del fuso orario true viene aggiornato la prima volta che è necessario da una funzione che richiede informazioni sul fuso orario, ad esempio strftime
, mktime
ftime
ftime_s
, localtime
e altre. Se una funzione che non richiede informazioni sul fuso orario non viene chiamata prima di chiamare _get_tzname
, i valori predefiniti vengono restituiti a meno che non vengano prima aggiornati in modo esplicito usando una delle funzioni indicate o tramite una chiamata a tzset
. Inoltre, se la variabile di ambiente è impostata, ha la TZ
precedenza sul nome del fuso orario segnalato dal sistema operativo. Anche in questo caso, una delle funzioni indicate in precedenza deve essere chiamata prima _get_tzname
di essere chiamata o verrà restituito il valore predefinito del fuso orario. Per altre informazioni sulla TZ
variabile di ambiente e su CRT, vedere _tzset
.
Avviso
La stringa del fuso orario non è garantita come la stessa tra le versioni del sistema operativo. I nomi ufficiali del fuso orario possono e cambiare.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Esempio
Questo esempio chiama _get_tzname
per ottenere le dimensioni del buffer necessarie per visualizzare il nome del fuso orario solare corrente, alloca un buffer di tale dimensione, chiama _get_tzname
di nuovo per caricare il nome nel buffer e lo stampa nella console.
Chiama anche _tzset()
per fare in modo che il sistema operativo aggiorni le informazioni sul fuso orario prima di chiamare _get_tzname()
. In caso contrario, vengono usati i valori predefiniti.
// crt_get_tzname.c
// Compile by using: cl /W4 crt_get_tzname.c
#include <stdio.h>
#include <time.h>
#include <malloc.h>
enum TZindex {
STD,
DST
};
int main()
{
size_t tznameSize = 0;
char * tznameBuffer = NULL;
_tzset(); // Update the time zone information
// Get the size of buffer required to hold DST time zone name
if (_get_tzname(&tznameSize, NULL, 0, DST))
{
return 1; // Return an error value if it failed
}
// Allocate a buffer for the name
if (NULL == (tznameBuffer = (char *)(malloc(tznameSize))))
{
return 2; // Return an error value if it failed
}
// Load the name in the buffer
if (_get_tzname(&tznameSize, tznameBuffer, tznameSize, DST))
{
return 3; // Return an error value if it failed
}
printf_s("The current Daylight standard time zone name is %s.\n", tznameBuffer);
return 0;
}
Output
The current Daylight standard time zone name is Pacific Daylight Time.
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_get_tzname |
<time.h> |
Per altre informazioni, vedere Compatibility.
Vedi anche
Gestione orari
errno
, _doserrno
, _sys_errlist
e _sys_nerr
_get_daylight
_get_dstbias
_get_timezone