Documentation for a newer release is available. View Latest

Configuration de la date et de l’heure

Les systèmes d’exploitation modernes font la distinction entre les deux types d’horloge suivants :

  • une horloge temps réel (real-time clock, RTC), également appelée communément horloge matérielle (généralement un circuit intégré sur la carte mère) qui est complètement indépendante de l’état actuel du système d’exploitation et qui s’exécute même lorsque l’ordinateur est éteint ;

  • une horloge système, également connue sous le nom d'horloge logicielle, maintenue par le noyau et dont la valeur initiale est basée sur l’horloge temps réel. Une fois que le système est démarré et que l’horloge système est initialisée, cette dernière devient complètement indépendante de l’horloge temps réel.

L’heure du système est toujours au temps universel coordonné (coordinated universal time, UTC) et converties dans les applications en heure locale si nécessaire. L’heure locale est l’heure dans votre fuseau horaire, elle prend en compte le décalage horaire (daylight saving time, DST). L’horloge temps réel peut être réglée à l’UTC ou à l’heure locale. UTC est recommandé.

29 offre trois outils en ligne de commande qui peuvent être utilisés pour configurer et obtenir des informations sur la date et l’heure du système : l’utilitaire timedatectl, nouveau dans 29 et faisant partie de systemd, la commande traditionnelle date et l’utilitaire hwclock pour accéder à l’horloge matérielle.

Utilisation de la commande timedatectl

L’utilitaire timedatectl est distribué avec systemd, le gestionnaire du système et des services, et vous permet d’examiner et modifier la configuration de l’horloge système. Vous pouvez utiliser cet outil pour modifier la date et l’heure, définir le fuseau horaire ou activer la synchronisation automatique de l’horloge système avec un serveur distant.

Pour savoir comment afficher la date et l’heure dans un format personnalisé, consultez aussi Utilisation de la commande date.

Affichage de la date et de l’heure

Pour afficher la date et l’heure ainsi que des informations détaillées à propos de la configuration du système et de l’horloge système, exécutez la commande timedatectl sans ajouter d’options à la ligne de commande :

timedatectl

Cette commande affiche l’heure locale et universelle, le fuseau horaire utilisé actuellement, l’état de la configuration Network Time Protocol (NTP) et d’autres informations à propos de l’heure d’été.

Exemple 1. Affichage de la date et de l’heure

Voici une sortie d’exemple de la commande timedatectl sur un système n’utilisant pas NTP pour synchroniser l’horloge système avec un serveur distant :

~]$ timedatectl
      Local time: Mon 2013-09-16 19:30:24 CEST
  Universal time: Mon 2013-09-16 17:30:24 UTC
        Timezone: Europe/Prague (CEST, +0200)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2013-03-31 01:59:59 CET
                  Sun 2013-03-31 03:00:00 CEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2013-10-27 02:59:59 CEST
                  Sun 2013-10-27 02:00:00 CET

Modification de l’heure actuelle

Pour modifier l’heure actuelle, tapez la commande suivante dans un shell s’exécutant en tant que root :

timedatectl set-time HH:MM:SS

Remplacez HH par l’heure désirée, MM par la minute désirée et SS par la seconde désirée, toutes sur deux chiffres.

Cette commande met à jour à la fois l’heure du système et l’horloge matérielle. Le résultat est similaire à l’utilisation des commandes date --set et hwclock --systohc.

La commande échouera si un service NTP est activé. Consultez Synchronisation de l’horloge système avec un serveur distant pour désactiver temporairement le service.

Exemple 2. Modification de l’heure actuelle

Pour définir l’heure actuelle à 23:26, exécutez la commande suivante en tant que root :

~]# timedatectl set-time 23:26:00

Par défaut, le système est configuré de façon à utiliser UTC. Pour configurer votre système de façon à maintenir l’horloge dans l’heure locale, exécutez en tant que root la commande timedatectl avec l’option set-local-rtc :

timedatectl set-local-rtc boolean

Pour configurer votre système de façon à maintenir l’horloge à l’heure locale, remplacez boolean par yes (y, true, t et même`1` fonctionnent également). Pour configurer le système de façon à utiliser UTC, remplacez boolean par no (n, false, f et 0 fonctionnent aussi). L’option par défaut est no.

Modification de la date actuelle

Pour modifier la date actuelle, tapez la commande suivante dans un shell s’exécutant en tant que root :

timedatectl set-time AAAA-MM-JJ

Remplacez AAAA par une année sur quatre chiffres, MM par un mois sur deux chiffres et JJ par un jour sur deux chiffres.

Notez que modifier la date sans spécifier l’heure actuelle a pour effet de définir l’heure à 00:00:00.

Exemple 3. Modification de la date actuelle

Pour définir la date actuelle au 2 juillet 2013 et conserver l’heure actuelle (23:26), exécutez la commande suivante en tant que root :

~]# timedatectl set-time "2013-06-02 23:26:00"

Changement de fuseau horaire

Pour lister les fuseaux horaires disponibles, tapez la commande suivante dans un shell :

timedatectl list-timezones

Pour changer de fuseau horaire, tapez la commande suivante en tant que root :

timedatectl set-timezone time_zone

Remplacez time_zone par l’une des valeurs listées par la commande timedatectl list-timezones.

Exemple 4. Changement de fuseau horaire

Pour identifier le fuseau horaire correspondant à votre emplacement, utilisez la commande timedatectl avec l’option en ligne de commande list-timezones. Par exemple, pour lister les fuseaux horaires d’Europe, tapez :

~]# timedatectl list-timezones | grep Europe
Europe/Amsterdam
Europe/Andorra
Europe/Athens
Europe/Belgrade
Europe/Berlin
Europe/Bratislava

Pour définir le fuseau horaire sur Europe/Prague, tapez la commande suivante en tant que root :

~]# timedatectl set-timezone Europe/Prague

Synchronisation de l’horloge système avec un serveur distant

Pour éviter les ajustements manuels décrits dans les sections précédentes, il est possible d’utiliser la commande timedatectl pour activer la synchronisation automatique de votre horloge système avec un groupe de serveurs distants en utilisant le protocole NTP. L’activation de NTP active le service chronyd ou ntpd, en fonction de celui qui est installé.

Le service NTP peut être activé et désactivé en utilisant une commande telle que la suivante :

timedatectl set-ntp boolean

Pour activer la synchronisation de l’horloge système avec un serveur NTP distant, remplacez boolean par yes (option par défaut). Pour désactiver cette fonctionnalité, remplacez boolean par no.

Exemple 5. Synchronisation de l’horloge système avec un serveur distant

Pour activer la synchronisation automatique de l’horloge système avec un serveur distant, tapez :

~]# timedatectl set-ntp yes

La commande échouera si aucun service NTP n’est installé. Consultez Installation de chrony pour plus d’informations.

Utilisation de la commande date

L’utilitaire date est disponible sur tous les systèmes Linux et vous permet d’afficher et de configurer la date et l’heure. Il est utilisé fréquemment dans les scripts pour afficher des informations détaillées à propos de l’horloge système dans un format personnalisé.

Pour savoir comment changer de fuseau horaire ou activer la synchronisation automatique de l’horloge système avec un serveur distant, consultez Utilisation de la commande timedatectl.

Affichage de la date et de l’heure

Pour afficher la date et l’heure, exécutez la commande date sans ajouter d’options à la ligne de commande :

date

Cette commande affiche le jour de la semaine suivi de la date actuelle, l’heure locale, le fuseau horaire et l’année.

Par défaut, la commande date affiche l’heure locale. Pour afficher l’heure en UTC, exécutez la commande avec l’option --utc ou -u :

date --utc

Vous pouvez aussi personnaliser le format d’affichage des informations en spécifiant l’option +"format" sur la ligne de commande :

date +"format"

Remplacez format par une ou plusieurs séquences de contrôle comme détaillé dans Affichage de la date et de l’heure. Consultez Séquences de contrôle utilisées communément pour une liste des options de formatage les plus utilisées, ou la page de manuel date(1) pour une liste complète de ces options.

Tableau 1. Séquences de contrôle utilisées communément
Séquence de contrôle Description

%H

Heure au format HH (par exemple, 17).

%M

Minute au format MM (par exemple, 30).

%S

Seconde au format SS (par exemple, 24).

%d

Jour au format JJ (par exemple, 16).

%m

Mois au format MM (par exemple, 09).

%Y

Année au format AAAA (par exemple, 2013).

%Z

Abréviation du fuseau horaire (par exemple, CEST).

%F

Date complète au format AAAA-MM-DD (par exemple, 2013-09-16). Cette option équivaut à %Y-%m-%d.

%T

Heure complète au format HH:MM:SS (par exemple, 17:30:24). Cette option équivaut à %H:%M:%S.

Exemple 6. Affichage de la date et de l’heure

Pour afficher la date actuelle et l’heure locale, tapez la commande suivante dans un shell :

~]$ date
lun. 16 sept. 2013 17:30:24 CEST

Pour afficher la date et l’heure UTC, tapez la commande suivante dans un shell :

~]$ date --utc
lun. 16 sept. 2013 15:30:34 UTC

Pour personnaliser la sortie de la commande date, tapez :

~]$ date +"%Y-%m-%d %H:%M"
2013-09-16 17:30

Modification de l’heure actuelle

Pour modifier l’heure actuelle, exécutez la commande date avec l’option --set ou -s en tant que root :

date --set HH:MM:SS

Remplacez HH par l’heure désirée, MM par la minute désirée et SS par la seconde désirée, toutes sur deux chiffres.

Par défaut, la commande date règle l’horloge système à l’heure locale. Pour définir l’horloge système sur l’UTC, exécutez la commande avec l’option en ligne de commande --utc`ou [option]-u` :

date --set HH:MM:SS --utc
Exemple 7. Modification de l’heure actuelle

Pour définir l’heure actuelle à 23:26, exécutez la commande suivante en tant que root :

~]# date --set 23:26:00

Modification de la date actuelle

Pour modifier la date actuelle, exécutez la commande date avec l’option --set ou -s en tant que root :

date --set YYYY-MM-DD

Remplacez AAAA par une année sur quatre chiffres, MM par un mois sur deux chiffres et JJ par un jour sur deux chiffres.

Notez que modifier la date sans spécifier l’heure actuelle a pour effet de définir l’heure à 00:00:00.

Exemple 8. Modification de la date actuelle

Pour définir la date actuelle au 2 juillet 2013 et conserver l’heure actuelle (23:26), exécutez la commande suivante en tant que root :

~]# date --set 2013-06-02 23:26:00

Utilisation de la commande hwclock

hwclock est un utilitaire permettant d’accéder à l’horloge système, aussi appelée horloge temps réel (real-time clock, RTC). L’horloge matérielle ne dépend pas de votre système d’exploitation et fonctionne même lorsque la machine est éteinte. Cet utilitaire est utilisé pour afficher l’heure de l’horloge matérielle. hwclock vous permet aussi de compenser le décalage systématique de l’horloge matérielle.

L’horloge matérielle stocke l’année, le mois, le jour, l’heure, la minute et la seconde. Elle n’est pas en mesure de stocker l’échelle de temps, s’il s’agit de l’heure locale ou de l’UTC, ou le décalage horaire.

L’utilitaire hwclock enregistre ses paramètres dans le fichier /etc/adjtime, créé au moment de la première modification que vous apportez, par exemple, en modifiant l’heure manuellement ou en synchronisant l’horloge matérielle avec l’heure du système.

Dans Fedora 6, la commande hwclock était exécutée automatiquement à chaque arrêt ou redémarrage du système, mais ce n’est plus le cas dans 29. Lorsque l’horloge système est synchronisée en utilisant NTP (network time protocol) ou PTP (precision time protocol), le noyau synchronise automatiquement l’horloge matérielle avec l’horloge système toutes les 11 minutes.

Pour plus de détails sur le NTP, consultez Configuration du NTP avec la suite chrony et Configuration du NTP avec ntpd. Pour plus d’informations sur le PTP, consultez Configuration du PTP avec ptp4l. Pour plus d’informations sur le réglage de l’horloge matérielle après l’exécution de ntpdate, consultez Configuration de la mise à jour de l’horloge matérielle.

Affichage de la date et de l’heure

Exécuter hwclock sans options en ligne de commande en tant que l’utilisateur root a pour effet d’écrire la date et l’heure locale sur la sortie standard.

hwclock

Notez qu’utiliser l’option --utc ou l’option --localtime de la commande hwclock n’a pas pour effet d’afficher l’heure de l’horloge matérielle à l’UTC ou à l’heure locale. Ces options servent à régler l’horloge matérielle sur l’heure locale ou sur l’UTC. L’heure affichée est toujours l’heure locale. De plus, utiliser la commande hwclock --utc ou la commande hwclock --local ne modifie pas le fichier /etc/adjtime. Cette commande peut être utile lorsque vous savez que la valeur enregistrée dans /etc/adjtime est incorrecte mais que vous ne souhaitez pas la modifier. Néanmoins, vous pourriez recevoir des informations qui prêtent à confusion si vous n’utilisez pas la commande correctement. Consultez la page de manuel hwclock(8) pour plus de détails.

Exemple 9. Affichage de la date et de l’heure

Pour afficher la date et l’heure locale provenant de l’horloge matérielle, exécutez en tant que root :

~]# hwclock
jeu. 15 avr. 2014 16:23:46 CEST     -0.329272 secondes

CEST est l’abréviation d’un fuseau horaire et signifie heure d’été d’Europe centrale (Central European Summer Time).

Pour savoir comment changer de fuseau horaire, consultez Changement de fuseau horaire.

Définir la date et l’heure

En plus d’afficher la date et l’heure, l’utilitaire vous permet de régler l’horloge matérielle à l’heure de votre choix.

Lorsque vous avez besoin de changer la date et l’heure de l’horloge matérielle, vous pouvez ajouter les options --set et --date en spécifiant la date et l’heure au bon format :

hwclock --set --date "jj mmm aaaa HH:MM"

Remplacez jj par un jour (sur deux chiffres), mmm par un mois (abréviation sur trois lettres, en anglais), aaaa par une année (sur quatre chiffres), HH par une heure (sur deux chiffres) et MM par une minute (sur deux chiffres).

Vous pouvez aussi régler en même temps le stockage dans l’horloge matérielle de l’heure à l’UTC ou à l’heure locale en ajoutant respectivement l’option --utc ou l’option --localtime. En effectuant ceci , UTC ou LOCAL est enregistré dans le fichier /etc/adjtime.

Exemple 10. Réglage de l’horloge matérielle à une date et une heure spécifiques

If you want to set the date and time to a specific value, for example, to "21:17, October 21, 2014", and keep the hardware clock in UTC, run the command as root in the following format:

~]# hwclock --set --date "21 Oct 2014 21:17" --utc

Synchronisation de la date et de l’heure

Vous pouvez régler l’horloge matérielle à l’heure du système et inversement.

  • Vous pouvez régler l’horloge matérielle à l’heure du système actuelle en utilisant cette commande :

    hwclock --systohc

    Notez que si vous utilisez NTP, l’horloge matérielle est synchronisée automatiquement à l’heure du système toutes les 11 minutes, et cette commande n’est utile qu’au moment du démarrage pour obtenir une heure du système raisonnable.

  • Ou bien, vous pouvez régler l’heure du système à l’heure de l’horloge matérielle en utilisant la commande suivante :

    hwclock --hctosys

Lorsque vous synchronisez l’horloge matérielle et l’heure du système, vous pouvez aussi spécifier si vous souhaitez que l’horloge matérielle stocke l’heure locale ou l’UTC en ajoutant l’option --utc ou l’option --localtime. Comme lorsque vous utilisez --set, UTC ou LOCAL est enregistré dans le fichier /etc/adjtime.

La commande hwclock --systohc --utc est similaire en termes de fonctionnement à timedatectl set-local-rtc false, et la commande hwclock --systohc --local est une alternative à timedatectl set-local-rtc true.

Exemple 11. Synchronisation de l’horloge matérielle avec l’heure du système

Pour régler l’horloge matérielle à l’heure du système actuelle et garder l’horloge matérielle à l’heure locale, exécutez la commande suivante en tant que root :

~]# hwclock --systohc --localtime

Pour éviter les problèmes liés aux fuseaux horaires et au changement d’heure, il est recommandé de garder l’horloge matérielle à l’UTC. Cette opération de shown Synchronisation de l’horloge matérielle avec l’heure du système est utile, par exemple, lorsque vous avez un système Windows sur la même machine, qui assume par défaut que l’horloge matérielle est à l’heure locale, et que tous les autres systèmes doivent s’y accommoder. Cela pourrait aussi être nécessaire si vous utilisez des machines virtuelles : si l’horloge matérielle virtuelle fournie par l’hôte est à l’heure locale, le système invité doit être configuré de façon à utiliser également l’heure locale.

Ressources supplémentaires

Pour plus d’informations au sujet de la configuration de la date et de l’heure dans 29, consultez les ressources listées ci-dessous.

Documentation installée
  • timedatectl(1) — La page de manuel pour l’utilitaire en ligne de commande timedatectl documente la façon dont on peut utiliser cet outil pour interroger et modifier l’horloge système et ses paramètres.

  • date(1) — La page de manuel pour la commande date fournit une liste complète des options en ligne de commande prises en charge.

  • hwclock(8) — La page de manuel pour la commande hwclock fournit une liste complète des options en ligne de commande prises en charge.

Voir aussi