tzset(3) Library Functions Manual tzset(3) NOM tzset, tzname, timezone, daylight -- Initialiser des donnees pour les conversions de temps BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include void tzset(void); extern char *tzname[2]; extern long timezone; extern int daylight; Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : tzset() : _POSIX_C_SOURCE tzname : _POSIX_C_SOURCE timezone, daylight : _XOPEN_SOURCE || /* glibc >= 2.19 : */ _DEFAULT_SOURCE || /* glibc <= 2.19 : */ _SVID_SOURCE DESCRIPTION The tzset() function initializes the tzname variable from the TZ environment variable. This function is automatically called by the other time conversion functions that depend on the timezone. In a System-V-like environment, it will also set the variables timezone (seconds West of UTC) and daylight (to 0 if this timezone does not have any daylight saving time rules, or to nonzero if there is a time, past, present, or future when daylight saving time applies). La fonction tzset() initialise ces variables a des valeurs non specifiees si ce fuseau horaire est une zone horaire geographique comme << America/New_York >> (voir ci-apres). Si la variable TZ n'apparait pas dans l'environnement, c'est le fuseau horaire du systeme qui sera utilise. Le fuseau horaire du systeme est configure en copiant ou en liant un fichier au format tzfile(5) vers /etc/localtime. Une base de donnees des fichiers de fuseaux horaires se trouve dans le repertoire des fuseaux horaires du systeme (voir plus bas la section FICHIERS). Si la variable TZ est presente dans l'environnement, alors que sa valeur est vide ou ne peut pas etre interpretee en utilisant les formats indiques plus bas, le temps universel coordonne (UTC) est utilise. La valeur de TZ peut prendre deux formats differents, chacun d'entre eux pouvant etre precede d'un caractere deux-points << : >> qui sera ignore. Le premier est une chaine de caracteres qui represente directement le fuseau horaire a utiliser : std decalage[dst[decalage][,debut[/temps],fin[/temps]]] Ce format ne comporte aucune espace. La chaine std est une abreviation du fuseau horaire et doit comporter au moins trois caracteres alphabetiques. Lorsqu'elle est entouree des symboles inferieur (<) et superieur (>), le jeu de caracteres autorises est etendu pour inclure les caracteres plus (+) et moins (-), ainsi que les chiffres. La chaine decalage immediatement apres std indique la valeur a ajouter a l'heure locale pour obtenir l'heure UTC. La valeur de decalage est positive si l'emplacement local est a l'ouest du meridien de Greenwich, et negative s'il est a l'est. L'heure doit etre entre 0 et 24, les minutes et les secondes entre 00 et 59 : [+|-]hh[:mm[:ss]] Les chaines dst et decalage indiquent le nom et le decalage du fuseau horaire correspondant a l'heure d'ete. Si le decalage est omis, une valeur par defaut est utilisee, correspondant a un decalage de plus une heure par rapport au temps standard. Le champ debut indique la date de debut de l'heure d'ete, et fin indique la date de retour a 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. Les jours intercalaires ne sont pas comptes. Dans ce format, le 29 fevrier ne peut pas etre represente. Le 28 fevrier est le jour 59, et le 1er mars est toujours le jour 60. n Indique le jour julien a partir de zero, avec n compris entre 0 et 365. Le 29 fevrier est pris en compte pour les annees bissextiles. Mm.s.j This specifies day d (0 <= d <= 6) of week w (1 <= w <= 5) of month m (1 <= m <= 12). Week 1 is the first week in which day d occurs and week 5 is the last week in which day d occurs. Day 0 is a Sunday. Les champs temps indiquent l'heure du changement, sous forme d'heure locale courante. Ils utilisent le meme format que decalage, a l'exception que l'heure peut appartenir a l'intervalle [-167, 167] pour representer des heures avant et apres le jour nomme. Par defaut, la valeur est 02h 00m 00s. L'exemple suivant correspond a la Nouvelle-Zelande. Son fuseau horaire (NZST) est en avance de 12 heures sur le temps universel (UTC). L'heure d'ete (NZDT) est en avance de 13 heures sur UTC et debute le dernier dimanche de septembre a l'heure d'hiver 02h 00m 00s pour se terminer le premier dimanche d'avril a 03h 00m 00s. TZ="NZST-12:00:00NZDT-13:00:00,M9.5.0,M4.1.0/3" Le second format -- ou << format geographique >> -- indique que les informations de fuseau horaire doivent etre lues depuis un fichier : fichier_tz The filespec specifies a tzfile(5)-format file to read the timezone information from. If filespec does not begin with a '/', the file specification is relative to the system timezone directory. If the specified file cannot be read or interpreted, Coordinated Universal Time (UTC) is used; however, applications should not depend on random filespec values standing for UTC, as TZ formats may be extended in the future. Voici un exemple, encore une fois pour la Nouvelle-Zelande : TZ="Pacific/Auckland" ENVIRONNEMENT TZ Si cette variable est definie, sa valeur prend le pas sur la valeur de fuseau horaire configuree sur le systeme. TZDIR Si cette variable est definie, sa valeur prend le pas sur le chemin du repertoire de la base de donnees des fuseaux horaires configure sur le systeme. FICHIERS /etc/localtime Fichier de fuseau horaire du systeme /usr/share/zoneinfo/ Repertoire de la base de donnees de fuseaux horaires du systeme. /usr/share/zoneinfo/posixrules Lorsqu'une chaine TZ inclut un fuseau horaire avec heure d'ete (dst) sans rien derriere, ce fichier est utilise pour les regles de debut/fin. Il est au format tzfile(5). Par defaut, le Makefile zoneinfo le lie physiquement au fichier tz America/New_York. Vous trouverez ci-dessus les localisations standards actuelles des fichiers, mais ces dernieres sont configurables lors de la compilation de la glibc. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +----------------------+--------------------------+--------------------+ |Interface | Attribut | Valeur | +----------------------+--------------------------+--------------------+ |tzset() | Securite des threads | MT-Safe env locale | +----------------------+--------------------------+--------------------+ NORMES POSIX.1-2024. HISTORIQUE tzset() tzname POSIX.1-1988, SVr4, 4.3BSD. timezone daylight POSIX.1-2001 (XSI), SVr4, 4.3BSD. 4.3BSD avait une routine char *timezone(zone, dst) qui renvoyait le nom du fuseau horaire correspondant a son premier argument (minutes a l'ouest d'UTC). Si le second argument etait 0, le nom standard etait utilise, sinon c'etait le nom avec l'heure d'ete. AVERTISSEMENTS Comme les valeurs de tzname, timezone et daylight sont souvent non specifiees, et qu'acceder a ces dernieres peut induire des comportements indefinis dans les applications multithreadees, le code devrait plutot extraire les decalage et abreviations lies au fuseau horaire a partir des membres tm_gmtoff et tm_zone de la structure de decomposition du temps tm(3). BOGUES Comme cette fonction ne signale pas d'erreur, il n'y a aucun moyen de savoir si la valeur de TZ represente une zone horaire valable. VOIR AUSSI date(1), gettimeofday(2), time(2), ctime(3), getenv(3), tzfile(5) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Lucien Gentis Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.18 8 fevrier 2026 tzset(3)