NOM
tzset, tzname, timezone, daylight - Initialiser des données pour les
conversions de temps
SYNOPSIS
#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 >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE
tzname : _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE
timezone : _SVID_SOURCE || _XOPEN_SOURCE
daylight : _SVID_SOURCE || _XOPEN_SOURCE
La fonction tzset() initialise la variable tzname en utilisant la
variable d’environnement TZ. Cette fonction est appelée automatiquement
par les autres fonctions de conversion dépendant du fuseau horaire.
Dans un environnement type System V, elle remplira également les
variables timezone (secondes à l’ouest de Greenwich) et daylight (0 si
le fuseau n’a pas de changement d’heure saisonnier, une valeur non
nulle s’il y a des périodes durant l’année où le changement horaire
s’applique).
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é :
std offset
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 :
std offset dst [offset],start[/time],end[/time]
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 :
Jn Indique le jour julien, avec n compris entre 1 et 365. Le 29
février n’est jamais compté, même pendant les années
bissextiles.
n Indique le jour julien, avec n compris entre 1 et 366. Le 29
février est compté pendant les années bissextiles.
Mm.s.j Indique le jour j (0 <= j <= 6) de la semaine s (1 <= s <= 5) du
mois m (1 <= m <= 12). La semaine 1 est la première semaine du
mois dans laquelle le jour j apparaît, et la semaine 5 la
dernière où le jour j apparaît. Le jour 0 est Dimanche.
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. Son fuseau horaire
(NZST) est 12 heures en avance sur le temps universel (UTC). L’heure
d’été (NZDT) est 13 heures en avance sur UTC et débute le premier
dimanche d’octobre pour finir le troisième dimanche de mars. Le
changement d’heure s’effectue à 02h00m00s.
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 :
:[filespec]
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, encore une fois pour la Nouvelle-Zélande :
TZ=":Pacific/Auckland"
FICHIERS
Le répertoire système employé pour les fuseaux horaires dépend de la
version de la bibliothèque C. Les libc4 et libc5 utilisaient
/usr/lib/zoneinfo, puis, à partir de la libc-5.4.6 le répertoire
/usr/share/zoneinfo si le premier n’existait pas. La bibliothèque glibc
2 utilise le contenu de la variable d’environnement TZDIR lorsqu’elle
existe. Par défaut, c’est normalement /usr/share/zoneinfo.
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.
CONFORMITÉ
SVr4, POSIX.1-2001, BSD 4.3.
NOTES
Remarquez que la variable daylight n’indique pas si le changement
d’heure saisonnier s’applique au moment de l’appel. Elle indique
simplement le numéro d’un algorithme (voyez la variable tz_dsttime dans
gettimeofday(2)). C’est obsolète depuis longtemps, mais obligatoire
avec SUSv2.
BSD 4.3 a une routine 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.
VOIR AUSSI
date(1), gettimeofday(2), time(2), ctime(3), getenv(3), tzfile(5)
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Nicolas François
<nicolas.francois@centraliens.net> et l’équipe francophone de
traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».
29 août 2008 TZSET(3)