#include <time.h> void tzset(void); extern char *tzname[2] extern long timezone; extern int daylight;
Exigences de macros de test de fonctionnalités pour la glibc (voir feature_test_macros(7)) :
tzset() :
_POSIX_C_SOURCE || _XOPEN_SOURCE
tzname :
_POSIX_C_SOURCE || _XOPEN_SOURCE
timezone :
_SVID_SOURCE || _XOPEN_SOURCE
daylight :
_SVID_SOURCE || _XOPEN_SOURCE
Si la variable TZ n'apparaît pas dans l'environnement, tzname est initialisée avec la meilleure approximation possible de l'heure locale, comme indiqué dans le fichier localtime, au format tzfile(5), se trouvant dans le répertoire système des fuseaux horaires (voir plus bas). (On utilise souvent /etc/localtime ici, en tant que lien symbolique vers le répertoire système des fuseaux horaires).
Si la variable TZ est présente dans l'environnement, mais que sa valeur est vide, ou si sa valeur ne peut pas être interprétée en utilisant le format indiqué plus bas, l'heure TU (temps universel, ou UTC) est utilisée.
La valeur de TZ peut prendre trois formats différents. Le premier correspond à un endroit où il n'y a pas de décalage heure d'hiver/heure d'été :
la chaîne std indique le nom du fuseau horaire, constitué d'au moins trois caractères alphabétiques. La chaîne offset suivant immédiatement std indique la valeur à ajouter à l'heure locale pour obtenir l'heure TU. La valeur offset est positive si l'emplacement est à l'Ouest du méridien 0, et négative si elle est à l'Est. L'heure doit être entre 0 et 24, les minutes et les secondes entre 0 et 59.
Le deuxième format est utilisé lorsqu'il existe des heures d'hiver et d'été différentes :
Les champs std et offset initiaux indiquent le fuseau horaire comme précisé ci-dessus. Les chaînes dst et offset indiquent le fuseau et le décalage de la zone correspondant à l'heure d'été. Si l'offset est omis, une valeur par défaut est utilisée, correspondant à une heure de décalage vers l'avant.
Le champ start indique la date de début de l'heure d'été, et end indique la date de retour à l'heure d'hiver. Ces deux champs utilisent l'un des formats suivants :
Le champ time indique l'heure du changement, sous forme d'heure locale courante. Par défaut, la valeur est 02h00m00s.
L'exemple suivant correspond à la Nouvelle Zélande, où l'heure normale (NZST) est 12 heures en avance sur l'heure UTC, et l'heure avancée (NZDT), 13 heures en avance sur l'heure UTC, a cours du premier dimanche d'octobre au troisième dimanche de mars. Le changement d'heure a lieu à 02h00m00s, heure normale :
TZ="NZST-12.00:00NZDT-13:00:00,M10.1.0,M3.3.0"
Le troisième format est utilisé pour indiquer que les informations de fuseau horaire doivent être lues depuis un fichier :
Si le fichier filespec n'est pas indiqué, les informations sont lues dans le fichier localtime se trouvant dans le répertoire système des fuseaux horaires, habituellement /usr/share/zoneinfo. Ce fichier est au format tzfile(5) Si filespec est indique, il doit correspondre à un autre fichier au format tzfile(5) où on lira les informations. Si filespec ne commence pas par un « / », le chemin d'accès est considéré à partir du répertoire système des fuseaux horaires.
Voici un exemple, toujours pour la Nouvelle Zélande :
TZ=":Pacific/Auckland"
Les fichiers se trouvant dans le répertoire sont :
localtime fichier d'information horaire locale posixrules règles pour les TZ au format POSIX
Souvent, /etc/localtime est un lien symbolique vers localtime ou vers le fichier correct dans le répertoire système des fuseaux horaires.
BSD 4.3 a une fonction char *timezone(zone, dst) qui renvoie le nom du fuseau horaire correspondant à son premier argument (minutes à l'ouest de Greenwich). Si le second argument est 0, le nom standard est fourni, sinon c'est le nom avec changement horaire saisonnier.
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 11 décembre 1996 et révisée le 17 juillet 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 tzset ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Dernière mise à jour : 17 juillet 2008