====== Linux ======
===== Manipulation sur les dates =====
\\
==== Commande 'date' ====
* **Syntaxe** :
$ date [+[format_options]]
* **Exemples** :
$ date
Wed Jul 20 16:49:15 CEST 2022
$ date +%Y-%m-%d
2022-07-20
* **Options de formatage**
^Format ^Description ^
|+%a |Gives name of the weekday [Mon, Sun, Fri] |
|+%A |Gives name of the weekday [Monday, Sunday, Friday] |
|+%b |Gives name of the month [Jan, Feb, Mar] |
|+%B |Gives name of the month [January, February, March] |
|+%d |Displays day of the month [05] |
|+%D |Displays current date MM/DD/YY format [11-01-21] |
|+%F |Shows date in YYYY-MM-DD format [2021-11-01] |
|+%H |Shows hour in 24-hour format [22] |
|+%I |Shows hour in 12-hour format [11] |
|+%j |Displays the day of the year [001 – 366] |
|+%m |Displays the number of the month [01-12] |
|+%M |Displays minutes [00-59] |
|+%S |Displays seconds [00-59] |
|+%N |Displays in Nanoseconds |
|+%T |Displays time as HH:MM:SS [in 24-hour format] |
|+%u |Day of the week [1-7] 1 is Monday, 6 is Saturday |
|+%U |Shows week number of the year [00-53] |
|+%Y |Displays year YYYY [2021] |
|+%Z |Displays Time zone |
^Format (avec indicateur)^Description ^
|-d "Yesterday" |Print yesterday's date and time. |
|-d "tomorrow" |Print Tomorrow date and time. |
|-d "tomorrow -10 days" |Find what is the date and time before 10 days from now. |
|-d "last month" "%B" |Find last month. |
|-d "next month" "%B" |Find next month. |
|-d "last year" "+%Y" |Find last year. |
|-d "next year" "+%Y" |Find next year. |
|-d "Today +2 days" "+%A" |Forecast the weekday |
\\
==== Afficher la date depuis un timestamp ====
$ date -d @1381764199
Mon Oct 14 17:23:19 CEST 2013
\\
==== Nombre de jours entre 2 dates données ====
$ echo $(( ( $(date -d "2022-07-20" "+%s") - $(date -d "2022-01-01" "+%s") ) / 86400))
199
# ou
$ echo $(($((`date +%s --date 01/10/2016`-`date +%s --date 01/10/2015`))/86400)) jours
365 jours
\\
==== Identifier une année bissextile ====
$ for y in {2000..2010}; do date -d $y-02-29 &>/dev/null && echo "$y est bissextile"; done
2000 est bissextile
2004 est bissextile
2008 est bissextile
\\
==== Modifier la date et l'heure du système ====
$ date --set="Thu Nov 12 13:06:59 IST 2020"
Thu Nov 12 13:06:59 IST 2020
$ hwclock --systohc # synchronise le changement avec l'horloge matérielle
\\