Dans le système Debian, la zone horaire du système est déterminée par le
lien symbolique /etc/localtime. Ce lien pointe vers un fichier de
données décrivant la zone horaire locale. Ces fichiers se trouvent sous
/usr/lib/zoneinfo. Les autres distributions Linux peuvent procéder
différemment.
Un utilisateur peut changer sa zone horaire privée en utilisant la variable
d'environnement TZ. Si celle-ci n'est pas positionnée, la zone horaire
du système est supposée. La syntaxe de la variable TZ est décrite dans la
page de tzset(3) du manuel en ligne.
La commande date donne la date et l'heure courante10.3. Par
exemple :
On est le dimanche 14 juillet, et il est à peu près dix heures moins dix du
soir, dans la zone horaire appelée << EET DST >> (ce qui peut signifier East
European Daylight Saving Time). date peut aussi donner l'heure
universelle :
date est aussi utilisée pour configurer l'horloge logicielle du noyau :
Voir la page de date du manuel en ligne pour plus de détails - la
syntaxe est un peu sybilline. Seul root peut configurer
l'heure. Alors que chaque utilisateur peut avoir sa propre zone horaire,
l'horloge est la même pour tout le monde.
date montre seulement, ou configure, l'horloge logicielle. La
commande clock synchronise les horloges matérielle et
logicielle. Elle est utilisée lorsque le système démarre, pour lire
l'horloge matérielle et configurer l'horloge logicielle. Si l'on a besoin
de configurer les deux horloges, on doit d'abord configurer l'horloge
logicielle avec date, puis l'horloge matérielle avec
clock -w.
L'option -u passée à clock lui indique que l'horloge matérielle est en heure universelle. On doit utiliser l'option -u correctement, sinon l'ordinateur sera plutôt embrouillé sur l'heure qu'il est.
Les horloges doivent être changées avec précaution. De nombreuses parties d'un système UNIX ont besoin des horloges pour fonctionner correctement. Par exemple, le démon cron lance périodiquement des commandes. Si l'on change l'horloge, il peut se demander s'il doit ou non les lancer. Sur un ancien système UNIX, quelqu'un avait avancé l'horloge de vingt ans, et cron voulait lancer toutes les commandes périodiques sur vingt ans en une seule fois. Les versions actuelles de cron savent gérer cela correctement, mais on doit quand même être prudent. Les grands sauts, ou les sauts en arrière sont plus dangereux que les petits sauts ou les sauts en avant.