_get_tzname
Récupère la représentation sous forme de chaîne de caractères du nom du fuseau horaire ou du nom de zone d’heure d’été (DST).
Syntaxe
errno_t _get_tzname(
size_t* pReturnValue,
char* timeZoneName,
size_t sizeInBytes,
int index
);
Paramètres
pReturnValue
Longueur de chaîne d’inclusion d’un timeZoneName
NULL
terminateur.
timeZoneName
Adresse d’une chaîne de caractères pour la représentation du nom du fuseau horaire standard ou du nom du fuseau horaire d’été (DST), en fonction de index
.
sizeInBytes
Taille de la chaîne de caractères timeZoneName
en octets.
index
L’un index
des deux noms de fuseau horaire à récupérer.
index |
Contenu de timeZoneName |
Valeur par défaut de timeZoneName |
---|---|---|
0 | Nom du fuseau horaire | "PST" |
1 | Nom du fuseau horaire d’hiver | "PDT" |
> 1 ou < 0 | errno défini sur EINVAL |
non modifié |
Sauf si elle est explicitement mise à jour pendant l’exécution, "PST"
elle est retournée pour le fuseau horaire standard et "PDT"
pour le fuseau horaire standard d’été. Pour plus d’informations, consultez les remarques.
La chaîne de fuseau horaire n’est pas garantie comme étant identique entre les versions du système d’exploitation. Les noms de fuseau horaire officiels peuvent changer.
Valeur retournée
Zéro en cas de réussite, sinon une valeur de type errno
.
timeZoneName
Si l’un ou l’autre sizeInBytes
est NULL
égal ou inférieur à zéro (mais pas les deux), un gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, cette fonction affecte la valeur errno
à EINVAL
et retourne EINVAL
.
Conditions d’erreur
pReturnValue |
timeZoneName |
sizeInBytes |
index |
Valeur retournée | Contenu de timeZoneName |
---|---|---|---|---|---|
Taille du nom du fuseau horaire | NULL |
0 | 0 ou 1 | 0 | non modifié |
Taille du nom du fuseau horaire | n'importe laquelle | > 0 | 0 ou 1 | 0 | Nom du fuseau horaire |
non modifié | NULL |
> 0 | n'importe laquelle | EINVAL |
non modifié |
non modifié | n'importe laquelle | zero | n'importe laquelle | EINVAL |
non modifié |
non modifié | n'importe laquelle | > 0 | > 1 | EINVAL |
non modifié |
Notes
La _get_tzname
fonction récupère la représentation sous forme de chaîne de caractères du nom du fuseau horaire actuel ou du nom de fuseau horaire d’été (DST) dans l’adresse de timeZoneName
la index
valeur, ainsi que la taille de la chaîne dans pReturnValue
. Si timeZoneName
elle est NULL
égale à sizeInBytes
zéro, la taille de la chaîne en octets requise pour contenir à la fois le fuseau horaire spécifié et une fin NULL
, est retournée dans pReturnValue
.
Les index
valeurs doivent être 0 pour le fuseau horaire standard ou 1 pour le fuseau horaire d’été ; toutes les autres valeurs ont des résultats indéterminés.
Par défaut, "PST"
est retourné pour le fuseau horaire standard et "PDT"
pour le fuseau horaire d’été. Le nom du fuseau horaire true est mis à jour la première fois qu’il est nécessaire par une fonction qui nécessite des informations de fuseau horaire, telles que strftime
, , ftime
, ftime_s
, mktime
, , localtime
et d’autres. Si une fonction qui ne nécessite pas d’informations de fuseau horaire n’est pas appelée avant l’appel _get_tzname
, les valeurs par défaut sont retournées, sauf si vous les mettez à jour explicitement à l’aide de l’une des fonctions mentionnées, ou par un appel à tzset
. En outre, si la TZ
variable d’environnement est définie, elle est prioritaire sur le nom du fuseau horaire signalé par le système d’exploitation. Même dans ce cas, l’une des fonctions mentionnées ci-dessus doit être appelée avant _get_tzname
d’être appelée ou la valeur de fuseau horaire par défaut sera retournée. Pour plus d’informations sur la variable d’environnement TZ
et le CRT, consultez _tzset
.
Avertissement
La chaîne de fuseau horaire n’est pas garantie comme étant identique entre les versions du système d’exploitation. Les noms de fuseau horaire officiels peuvent changer.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Exemple
Cet exemple d’appels _get_tzname
pour obtenir la taille de mémoire tampon requise pour afficher le nom actuel du fuseau horaire d’été, alloue une mémoire tampon de cette taille, appelle _get_tzname
à nouveau pour charger le nom dans la mémoire tampon et l’imprime dans la console.
Il appelle _tzset()
également pour que le système d’exploitation met à jour les informations du fuseau horaire avant d’appeler _get_tzname()
. Sinon, les valeurs par défaut sont utilisées.
// 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;
}
Sortie
The current Daylight standard time zone name is Pacific Daylight Time.
Spécifications
Routine | En-tête requis |
---|---|
_get_tzname |
<time.h> |
Pour plus d'informations, voir Compatibilité.
Voir aussi
Gestion des horaires
errno
, _doserrno
, _sys_errlist
et _sys_nerr
_get_daylight
_get_dstbias
_get_timezone