Condividi tramite


_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 è NULLzero 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 NULLviene 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, mktimeftimeftime_s, localtimee 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