Dates et horodatages sous UNIX/Linux

Niraj Menon 22 mars 2022
  1. Obtenir la date et l’heure actuelles sous Linux
  2. Heure UNIX
Dates et horodatages sous UNIX/Linux

Les informations de date et d’heure ne sont pas aussi visibles sur la ligne de commande qu’elles le seraient avec une version graphique de Linux, mais nous pouvons certainement obtenir ces informations avec la commande date.

Ce didacticiel explique comment utiliser la commande date pour obtenir, analyser, convertir des dates et des heures et les imprimer dans différents formats sous Linux, en supposant une ligne de commande shell Bash.

Obtenir la date et l’heure actuelles sous Linux

Comme indiqué, l’exécution de date nous donne la date et l’heure actuelles, avec le fuseau horaire.

user@linux:~$ date
Tue 01 Jan 2022 12:00:00 AM +04

Le format date-heure par défaut sera dans le fuseau horaire dans lequel vous vous trouvez - dans ce cas, la sortie de date est destinée à un utilisateur dont le fuseau horaire est l’heure normale du Golfe, ou GMT+04. Pour imprimer la date et l’heure dans un format différent, tel que UTC ou GMT, ou yyyy/mm/dd ou dd/mm/yyyy, vous pouvez spécifier ce format à l’aide de modificateurs spéciaux comme suit.

# to print the current date in dd/mm/yyyy format
date +%d-%m-%Y
# to print the current date and time in UTC
date -u
# to print the date and/or time as per IETF RFC3349
date --rfc-3339=seconds
# to print the date and time within a custom string
date +"Today is %D and the time is %I:%M:%S"

Heure UNIX

Dans la plupart des systèmes UNIX, l’heure actuelle est stockée comme le temps écoulé depuis un moment particulier pour simplifier, en conservant l’heure sous la forme d’un entier long, appelé l’époque UNIX. Le moment universellement accepté pour tous les systèmes UNIX est 1er janvier 1970, 00:00:00 AM. Cela s’appelle un horodatage UNIX et est reconnu par tous les systèmes UNIX/Linux modernes.

Par exemple, si nous souhaitons trouver l’horodatage UNIX du 1er janvier 2022, nous pouvons utiliser la commande date.

user@linux:~$ date -d"1 January 2022 12:00 AM" +%s
1640980800

date tente d’analyser la chaîne pour une date et une heure formatées (ou, si un horodatage n’est pas spécifié, suppose que l’heure est 12h00), puis imprime la forme d’horodatage UNIX de la date et/ou de l’heure donnée. 1640980800 est le nombre exact de secondes qui se sont écoulées depuis le 1er janvier 1970, 00:00:00 AM.

L’inverse est également possible, dans lequel nous prenons un horodatage UNIX et le convertissons en une représentation de date. Pour récupérer notre date d’origine, nous pouvons passer l’horodatage UNIX comme indiqué pour le convertir.

user@linux:~$ date -d @1640980800
Sat 01 Jan 2022 12:00:00 AM +04

Si nous le souhaitons, nous pouvons également inclure d’autres paramètres pour formater la date d’une manière spécifique, comme UTC ou GMT, comme expliqué ci-dessus.

Article connexe - Linux Date