
Příkaz date v Linuxu se používá k zobrazení nebo nastavení systémového data a času. Umožňuje uživatelům zobrazovat čas v různých formátech a počítá minulá a budoucí data.
V tomto tutoriálu se seznámíme s příkazem datum v Linuxu s příklady použití .
Jak používat linuxový příkaz date?
Následuje syntaxe příkazu date na terminálu Linux:
date [option]... [+format]
Ve výchozím nastavení příkaz date tiskne datum v časovém pásmu, ve kterém je systém nakonfigurován. Ke změně data a času byste měli potřebovat uživatele s oprávněním root nebo sudo.
Datum zobrazení
Když je příkaz datum použit bez jakýchkoli voleb a argumentů, zobrazí aktuální datum a čas ve výchozím formátu následovně:
$ date

Výstup zobrazuje den v týdnu, měsíční den, aktuální měsíc, rok, aktuální čas a časové pásmo s rokem. Příkaz date zobrazí výchozí časové pásmo, které je nastaveno ve vašem operačním systému.
Zobrazit budoucí data
Řetězec data -d nebo --date umožňuje tisknout budoucí nebo nadcházející data. Chcete-li vytisknout budoucí data, zadejte hodnoty do řetězců, jako je „příští pátek“, „zítra“ nebo podobně.
Chcete-li například vytisknout zítřejší datum, zadejte následující příkaz:
$ date -d ”tomorrow”

Zobrazit datum příštího pátku:
$ date -d "next Friday"

Zobrazit minulá data
Pomocí volby -d můžete na svém systému Linux zobrazit minulá data. Řetězec data umožňuje zadat hodnoty jako „včera“, „sobota“, „minulý pátek“, „před 3 lety“ nebo podobné. Takže pomocí následujícího data řetězce můžete zobrazit minulá data:
$ date -date "1 year ago"

Chcete-li zobrazit včerejší datum, použijte s příkazem datum následující řetězec:
$ date -d ”yesterday”

Podobně, chcete-li zobrazit datum posledního pátku, spusťte níže uvedený příkaz:
$ date -d ”last Friday”

Možnosti formátu příkazu data
Zobrazený terminálový výstup příkazu data systému Linux lze formátovat pomocí řídicích znaků formátu, před kterými je symbol „+“. Všechny tyto ovládací prvky formátu pokračují znakem „%“ a následují jejich hodnoty.
Například chceme formátovat výstup příkazu date následujícím způsobem:
$ date +"Year: %Y, Month: %m, Day: %d"

Pomocí následujícího nejběžnějšího seznamu formátovacích znaků můžete zobrazit výstup v požadovaném formátu:
- %a – Vytiskne název dne v týdnu v krátkém formátu (např. Po)
- %A – používá se k zobrazení celého názvu dne v týdnu (např. pondělí)
- %b – Zobrazí název měsíce ve zkrácené podobě (např. Jan)
- %B – používá se k zobrazení názvu celého měsíce (např. leden)
- %d – zobrazuje den v měsíci (např. 05)
- %H – hodina zobrazení (00..23)
- %I – Hodina zobrazení ve formátu (01..12)
- %j – zobrazuje den v roce (001..366)
- %m – zobrazuje měsíc v počtu (01..12)
- %M – Tisk minut za 00..59 s.
- %S – Zobrazuje sekundy (00..60)
- %u – Zobrazení dne týdne v počtu (1..7)
- %Y – používá se k zobrazení celého roku (např. 2019)
Pomocí následujícího příkazu můžete prozkoumat úplný seznam možností formátu příkazu date:
$ date --help
$ man date
Zobrazení data z hodnoty řetězce
Volby -date nebo -d umožňují zobrazit konkrétní datum. Chcete-li zobrazit konkrétní datum z řetězce data, zadejte řetězec data, který je ve formátu čitelném pro člověka, jako je následující příkaz:
$ date -d "2020-10-09 10:22:47"

Pomocí volby -d můžete také zobrazit datum ve vlastním formátování následovně:
$ date -d '12 Jan 2021' +'%A, %d %B %Y'

Zobrazit čas poslední úpravy souboru
Někdy potřebujeme zobrazit čas poslední úpravy souboru. Příkaz date v systému Linux vám pomůže vytisknout čas poslední úpravy souboru. Když použijete příkaz datum následovaný volbou ‚-r‘, vytiskne čas poslední úpravy souboru.
Chcete-li například zobrazit datum poslední úpravy souboru ‚/etc/hosts‘, použijte níže uvedený příkaz:
$ date -r /etc/hosts

Příkaz Datum pro nastavení časového pásma
Příkaz date zobrazí výchozí časové pásmo vašeho systému, které je definováno v souboru ‚/etc/localtime‘. Chcete-li však vytisknout časové pásmo jiné země, nastavte proměnnou prostředí „TZ“ na požadované časové pásmo.
Chcete-li zobrazit všechny dostupné seznamy časových pásem spuštěním následujícího příkazu:
$ timedatectl list-timezones

Chcete-li například nastavit časové pásmo pro zobrazení času ze Sydney do Austrálie, spusťte následující příkaz:
$ TZ='Australia/Melbourne' date

Použití jako převodník epoch
Příkaz datum funguje také jako převodník epoch. Epocha zobrazuje čas v počtu sekund, které uplynuly od 2. února 1975, v 00:00:00 UTC. Chcete-li zobrazit uplynulý čas v sekundách k aktuálnímu datu, použijte příkaz datum spolu s ovládacím prvkem formátu %s:
$ date +%s

Chcete-li například zobrazit, kolik sekund uplynulo od určité epochy do určitého data, použijte následující příkaz:
$ date -d "1980-10-25" +"%s"

Použití data s jinými příkazy
Příkaz ‚date‘ v systému Linux lze implementovat s dalšími příkazy k vytvoření různých názvů souborů, které obsahují informace o aktuálním datu a čase.
V následujícím příkladu jsme vytvořili nový záložní soubor SQL pomocí níže uvedeného příkazu:
$ mysqldump database_name > database_name-$(date +%Y%m%d).sql
Příkaz date lze také použít ve skriptu shellu. V následujícím příkladu jsme přiřadili výstup příkazu date nové proměnné ‚date_now‘.
$ date_current=$(date "+%F-%H-%M-%S")
$ echo $date_current

Nastavit datum v Linuxu
Pomocí příkazu date můžete ručně nastavit datum systému Linux.
Chcete-li například ručně nastavit datum a čas systému Linux na 14:30, 13. října 2021. Spusťte níže uvedený příkaz:
$ date --set="20211013 05:30"

Systémový čas většiny distribucí Linuxu je ve výchozím nastavení synchronizován s NTP nebo timedatectl / timesyncd. Nemusíte si tedy dělat velké starosti s jeho změnou.
Závěr
Poskytli jsme návod, jak používat příkaz datum v systému Linux. Chcete-li prozkoumat více o příkazu date, navštivte manuálové stránky příkazu date.