La commande Date est un programme bash externe qui permet de définir ou d’afficher la date et l’heure du système. Il offre également plusieurs options de formatage. La commande Date est installée par défaut dans toutes les distributions Linux.
$ which date $ type -a date

Tapez la commande date dans le terminal pour afficher la date et l’heure actuelles.
$ date

Changer la date et l’heure du système Linux
En utilisant la commande date, la date, l’heure et le fuseau horaire du système peuvent être modifiés et le changement doit être synchronisé avec l’horloge matérielle.
$ date --set="Thu Nov 12 13:06:59 IST 2020" $ hwclock --systohc

Options de formatage
A good place to get the list of formatting options will be the man page.
$ man date
Voyons quelques-unes des options de formatage les plus courantes que nous utiliserons.
- Pour appliquer le formatage, utilisez « + suivi de « formatteur« .
- Pour obtenir une liste des options de formatage pour GNU/LINUX, consultez la page de manuel liée.
- Pour obtenir une liste des options de formatage pour BSD, consultez la page de manuel liée.
Les deux parties importantes de la commande date sont l’utilisation du format +%
et de l’option –date.
Maintenant, appliquons un peu de mise en forme sur la commande date. Pour appliquer la mise en forme, ajoutez le signe plus (+)
suivi de %formatter
comme indiqué dans les exemples.
Gestion de la date sous Linux
Jetons un coup d’œil à comment utiliser les formateurs liés à la date dans un simple script shell appelé ‘date.sh‘.
# PRINT YEAR,MONTH,DAY AND DATE... echo "We are in the year = $(date +%Y)" echo "We are in the year = $(date +%y)" # Difference between %Y and %y is %Y will print 4 digits while %y will print the last 2 digits of the year. echo "We are in the month = $(date +%m)" echo "We are in the month = $(date +%b)" echo "We are in the month = $(date +%B)" # Difference between %B and %b is, %B will print full month name while %b will print abbreviated month name. echo "Current Day of the month = $(date +%d)" echo "Current Day of the week = $(date +%A)" echo "Current Day of the week = $(date +%a)" # Difference between %A and %a is, %A will print full Weekday name while %a will print abbreviated weekday name. # Instead of formatting to get the date, we can use %D which will print the date as %m/%d/%y or %F which prints in %Y-%M-%d format. echo "Date using %D = $(date +%D)" echo "Date using %F = $(date +%F)"

Gestion du temps sous Linux
Jetons un coup d’œil à comment utiliser les formateurs liés au temps dans un simple script shell appelé ‘time.sh‘.
# PRINT HOURS, MINS, SECONDS, NANO SECONDS echo Hours = $(date +%H) echo Minutes = $(date +%M) echo Seconds = $(date +%S) echo Nanoseconds = $(date +%N) echo Epoch Time = $(date +%s) echo "current time = $(date +%H:%M:%S:%N)" # can also use %T which displays Time in HH:MM:SS format. echo "current time in 24 hour format = $(date +%T)" # can also use %r to display time in 12 hour format. echo "current time in 12 hour format = $(date +%r)"

Avec le drapeau –date ou -d
Avec le drapeau --date
ou -d
, l’entrée peut être passée en tant que chaîne et la commande date saura la gérer intelligemment.
Voyons quelques exemples pour comprendre comment cela fonctionne.
# Print yesterday's date and time. echo "Yesterday = $(date -d "Yesterday")" # Print Tomorrow date and time. echo "tomorrow = $(date -d "tomorrow")" # Find what is the date and time before 10 days from now. echo "Before 10 days = $(date -d "tomorrow -10 days")" # Find last month and next month echo "Last month = $(date -d "last month" "%B")" echo "Next month = $(date -d "next month" "%B")" # Find last year and next year echo "Last Year = $(date -d "last year" "+%Y")" echo "Next Year = $(date -d "next year" "+%Y")" # Forecast the weekday echo "2 days away from today and it comes on weekdays? = $(date -d "Today +2 days" "+%A")

Opérations courantes
calculer le nombre de jours entre 2 dates données.
$ echo $(( ( $(date -d "2020-11-10" "+%s") - $(date -d "2020-11-01" "+%s") ) / 86400))
Trouver si l’année donnée est bissextile ou non.
$ for y in {2000..2020}; do date -d $y-02-29 &>/dev/null && echo $y is leap year; done

Attribuer la sortie de la commande date à une variable.
$ TODAY=$(date +%Y-%m-%d) OR $ TODAY1=$(date +%F) $ echo $TODAY $ echo $TODAY1

Créer des fichiers journaux avec la date ajoutée au nom de fichier.
Ajouter la date et l’heure lors de la création de fichiers journaux, de sauvegardes ou de fichiers texte est une opération courante que nous rencontrerons le plus souvent. Prenons un exemple, pour effectuer une sauvegarde, nous avons créé un script shell.
Ce script effectuera une sauvegarde de 00:00 à 23:59 et sera programmé pour s’exécuter quotidiennement à 00:00 du lendemain. Nous voulons créer des fichiers journaux avec le format de date d’hier.
CUSTOM_FORMAT=$(date --date "Yesterday" "+%d-%y-%H:%M") LOG_FILE=/var/log/custom_application/application_${CUSTOM_FORMAT}.log echo "Script started" >> ${LOG_FILE} ... CODE BLOCKS ... echo "Script completed" >> ${LOG_FILE}
C’est tout pour cet article. Dans cet article, nous avons vu comment utiliser la date et l’heure bash dans Linux. Faites-nous part de vos commentaires.
Source:
https://www.tecmint.com/change-linux-system-date-and-time/