Holen Sie sich das gestrige Datum in Linux

Olorunfemi Akinlua 20 Juni 2023
  1. Verwenden Sie den Befehl date, um das gestrige Datum in Linux zu erhalten
  2. Verwenden Sie die Variable tz, um das gestrige Datum in Linux zu erhalten
Holen Sie sich das gestrige Datum in Linux

Bash ist eine beliebte Shell- und Befehlszeilenschnittstelle für Linux und bietet viele wertvolle Tools und Funktionen für die Arbeit mit Datums- und Uhrzeitangaben. In diesem Artikel werden wir verschiedene Ansätze untersuchen, um das gestrige Datum in Bash unter Linux zu erhalten, und wir werden auch erörtern, wie sichergestellt werden kann, dass das Datum DST-sicher (Sommerzeit-sicher) ist.

Verwenden Sie den Befehl date, um das gestrige Datum in Linux zu erhalten

Eine der einfachsten Möglichkeiten, das gestrige Datum in Bash zu erhalten, ist die Verwendung des Befehls date. Mit diesem Befehl können Sie die Ausgabe des aktuellen Datums und der Uhrzeit auf viele verschiedene Arten formatieren, und Sie können ihn verwenden, um das Datum im gewünschten Format anzuzeigen.

Um beispielsweise das gestrige Datum im Format JJJJ-MM-TT zu erhalten, können Sie den folgenden Befehl verwenden:

date -d "yesterday" +%F

Ausgang:

2022-11-26

Dieser Befehl verwendet die Option -d, um eine Datumszeichenfolge anzugeben (in diesem Fall gestern), und den Formatbezeichner +%F, um das Datum im Format JJJJ-MM-TT zu drucken. Dadurch wird das gestrige Datum im angegebenen Format zurückgegeben, z. B. 2022-11-26 für den 26. November 2022.

Dieser Ansatz hat jedoch einige Einschränkungen. Beispielsweise basiert es auf der lokalen Zeitzone des Systems und berücksichtigt nicht die Sommerzeit (DST).

Das bedeutet, dass das Ergebnis möglicherweise nicht genau ist, wenn das Datum in einen Übergangszeitraum zur Sommerzeit fällt. Um dieses Problem zu lösen, können wir unter Berücksichtigung der Sommerzeit einen anderen Ansatz verwenden.

Eine Möglichkeit, dies zu tun, besteht darin, die Option -u mit dem Befehl date zu verwenden, der ihm mitteilt, die UTC-Zone anstelle der lokalen Zeitzone zu verwenden. Dadurch wird sichergestellt, dass das Datum anhand einer festen Zeitzone berechnet wird, und es werden Probleme mit Umstellungen auf die Sommerzeit vermieden.

Hier ist ein Beispiel für die Verwendung dieser Option, um das gestrige Datum im Format JJJJ-MM-TT zu erhalten.

date -u -d "yesterday" +%F

Ausgang:

2022-11-26

Dieser Befehl ähnelt dem vorherigen, fügt jedoch die Option -u hinzu, um die UTC-Zone zu verwenden. Dadurch wird das gestrige Datum im angegebenen Format zurückgegeben, aber es wird anhand der UTC-Zone statt der lokalen Zeitzone berechnet.

Verwenden Sie die Variable tz, um das gestrige Datum in Linux zu erhalten

In Bash ist die Umgebungsvariable tz kein Standard. Es ist eine benutzerdefinierte Variable, die verwendet werden kann, um die Zeitzone für das System zu speichern.

Dieser Wert kann dann von Programmen verwendet werden, die auf die Zeitzone angewiesen sind, um Datum und Uhrzeit zu berechnen oder anzuzeigen.

Beispielsweise kann die Variable TZ auf eine Zeitzonenzeichenfolge wie "America/Los_Angeles" oder "Europe/Paris" gesetzt werden, um die gewünschte Zeitzone anzugeben. Beachten Sie, dass Format und Inhalt der Zeitzonenzeichenfolge je nach System und verwendeter Zeitzonendatenbank variieren können.

Wir können die Variable tz und die Variable $EPOCHSECONDS verwenden, um das gestrige Datum zu erhalten.

printf -v tz '%(%z)T' -1
TZ=$tz printf -v yesterday '%(%Y-%m-%d)T' $(( EPOCHSECONDS - 86400 ))
echo $yesterday

Ausgang:

2022-11-26

Der Code stellt die Zeitzone des Systems ein und druckt das Datum des Vortages im angegebenen Format (YYYY-MM-DD). Das -v-Flag beim printf-Befehl ordnet die Ausgabe des Befehls einer Variablen zu (tz für die Zeitzone und yesterday für das Datum des Vortages).

Das Argument -1 für den ersten printf-Befehl gibt die aktuelle Zeitzone des Systems an. Der zweite printf-Befehl verwendet die Umgebungsvariable TZ, um die Zeitzone festzulegen, und den Ausdruck $(( POCHSECONDS - 86400 )), um das Datum des Vortages in Epochenzeit (die Anzahl der verstrichenen Sekunden) zu berechnen seit 1. Januar 1970).

Die Formatzeichenfolge %(%Y-%m-%d)T gibt das gewünschte Datumsformat an, und der Befehl echo gibt das Datum an das Terminal aus.

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Verwandter Artikel - Bash Date