L i n u x    B e f e h l    date

Kommando date zeigt ein Datum an, das entweder das laufende Datum ist (Standard) oder ein irgendwie (via Optionen) spezifiziertes Datum. Weitere Optionen ermöglichen eine Formatierung der Ausgabe, je nach Wunsch des Users.

ANLASS:
Immer wieder werden Zeitstempel verwendet, um automatisierte Vorgänge (in einem Skript) zu protokollieren. In diesem Fall wird das Kommando (samt Optionen und Formate) direkt ins Skript hinein geschrieben. Oder kann die Eingabe auf der Konsole nötig sein, um ein bestimmtes Datum in der Vergangenheit oder in der Zukunft zu erkunden.

SYNTAX: date [-option]... [+Format]

VERSION: date --version

Kommando date --version
Kommando date --version (Stand Mai 2022)

HELP: Via date --help erhält der User (wirklich) umfangreiche Informationen zur Verwendung.
Nachstehend ist die Ausgabe der Option --help auf meiner Konsole (vgl. auch mein Linux System)

Kommando date help Optionen
Kommando date -help: [1] Liste der Optionen

Kommando date help Formatierung
Kommando date -help: [2] Formatierung

Kommando date help Formatierung
Kommando date -help: [3] Anwendungsbeispiele

OPTIONEN (Auswahl):

Option Bedeutung
--help

Hilfe (help)
Listet Optionen und Formate auf.

-u, --utc, --universal,

zeigt nicht das lokale Datum und Zeit, sondern die Weltzeit.

+"{Formatspezifikation}"

bestimmt das Format der Aufgabe
Ich bevorzuge folgende Formatierung +"%Y-%m-%d %H:%M". Daraus ergibt sich 2022-05-28 16:20, wenn das Datum der 28. Mai 2022, 16:20 ist.

Es gibt eine Vielzahl weiterer Schlüsselworte (tokens) wie z.B. %y, %S u.s.w. Die vollständige Liste ist z.B. der Linux manpage oder über die Option --help zu entnehmen.

--date="{Datum}"

Fehlt diese Option, wird der laufende Zeitstempel (Datum/Uhrzeit) ausgegeben.
Es gibt verschiedene Möglichkeiten, die Ausgabe zu steuern.

  1. Es wird ein absolutes Datum eingegeben
    z.B. date --date="1963-05-09" für den 09. Mai 1963. Zu beachten ist, dass die Option --date das Amerikanische Format erwartet (Jahr-Monat-Tag).

  2. Es wird ein relatives Datum in der Vergangenheit eingegeben
    z.B. date --date="5 day[s] ago", wenn der auszugebende Zeitstempel 5 Tage in der Vergangenheit liegt.

    Schlüsselworte week[s] ago, month[s] ago, year[s] ago, sind auch unterstützt.

    Der Rückblick umfasst nur eine begrenzte Spanne. Die Implementierung in meinem System betrachtet Daten, die mehr als 50 Jahre zurückliegen, als ungültig.

  3. Es wird ein relatives Datum in der Zukunft eingegeben
    z.B. date --date="5 day[s]", wenn der auszugebende Zeitstempel (Datum/Uhrzeit) 5 Tage in der Zukunft liegt.

    Schlüsselworte week[s], month[s], year[s], sind auch unterstützt.

    Die Implementierung unterstützt eine Vorausschau von 10 000 Jahren und mehr.

TZ

steht für "Time Zone", Zeitzone
Es gibt mehrere Verfahren, um eine Zeitzone in die Eingabe einzubinden. Fehlt die Eingabe, beziehen sich Eingabe und Ausgabe auf die lokale Zeitzone (local time).

  1. Kommando TZ='Europe/Dublin' date
    zeigt den aktuellen Datum/Zeit-Stempel, jedoch nicht für die Zeitzone des Users, sondern für einen User in Europe/Dublin.

    Diese Syntax stellt die einzige (mir bekannte) Möglichkeit dar, den Zeitstempel der Ausgabe auf eine andere Zeitzone zu beziehen, als die lokale.

  2. Kommando date --date='TZ="Europe/Dublin"09:00 next Fri'
    gibt den lokalen Zeit-Stempel aus, wenn es in Dublin am nächsten Freitag, 9:00 Uhr ist.

Um die verfügbaren Zeitzonen aufzulisten, nutzt man folgendes Kommando:
timedatectl list-timezones.

Tab. Optionen von date

Weiterführende Links:

Linux manpage date
geekforgeeks Command date with examples
Linuxize Command date with examples