Das Linux-Datumsformat verstehen und verwenden
Was ist das Linux-Datumsformat?
Das Linux-Datumsformat ist eine standardisierte Methode zur Darstellung von Datum und Uhrzeit in Linux-Systemen. Es ist von entscheidender Bedeutung für die korrekte Speicherung und Anzeige von zeitbezogenen Daten in verschiedenen Anwendungen und Skripten.
Struktur des Linux-Datumsformats
Das Linux-Datumsformat basiert auf dem Unix-Zeitstempel, einer numerischen Darstellung der Zeit seit der Epoche (1. Januar 1970, 00:00:00 UTC). Diese numerische Darstellung kann in verschiedene lesbare Textformate konvertiert werden.
Formate für Datum und Uhrzeit
Linux bietet verschiedene Formate für die Darstellung von Datum und Uhrzeit, darunter:
-
ISO 8601: Internationaler Standard für Datum- und Uhrzeitdarstellung, z. B.
2023-02-14
für das Datum und14:30:00
für die Uhrzeit -
Lokalisierte Formate: Auf die Ländereinstellungen des Systems abgestimmte Formate, z. B.
14.02.2023
für das Datum in Deutschland -
Benutzerdefinierte Formate: Mittels Datumsformatzeichenfolgen anpassbare Formate, z. B.
%Y-%m-%d %H:%M:%S
für Datum und Uhrzeit im FormatJahr-Monat-Tag Stunde:Minute:Sekunde
Verschiedene Formate des Datums und der Uhrzeit in Linux
Linux bietet zahlreiche Optionen zum Anzeigen und Formatieren von Datums- und Uhrzeitinformationen. Im Folgenden findest du einige gängige Formate:
Date and Time Basics
-
ISO 8601-Format: Das internationale Standardformat, das Jahr, Monat, Tag, Stunde, Minute und Sekunde trennt, z. B.
2023-03-08T14:30:00
. -
POSIX-Format: Ein zeitstempelbasiertes Format, das die Anzahl der Sekunden seit dem 1. Januar 1970 darstellt, z. B.
1646793800
. -
Epoch-Zeit: Ähnlich wie POSIX, jedoch ohne die Dezimalstellen, z. B.
16467938
.
Benutzerdefinierte Formatierung
Zusätzlich zu diesen Standardformaten kannst du mit Hilfe von Datumsformatzeichenfolgen deine eigenen benutzerdefinierten Formate erstellen. Hier sind einige gebräuchliche Zeichenfolgen:
- %Y: Vierstelliges Jahr
- %m: Zweisteiliger Monat
- %d: Zweisteiliger Tag
- %H: Zweistündige Stunde (24-Stunden-Format)
- %M: Zweiminütige Minute
- %S: Zweiteilige Sekunde
Du kannst diese Zeichenfolgen kombinieren, um verschiedene Formate zu erstellen, z. B. %Y-%m-%d %H:%M:%S
für das Format 2023-03-08 14:30:00
.
Lokalisierung
Linux bietet die Möglichkeit, Datums- und Uhrzeitformate zu lokalisieren. Dies ermöglicht es dir, die Formate basierend auf deiner Region oder Sprache anzupassen. Du kannst die Umgebungsvariable LANG
verwenden, um die Lokalisierungseinstellungen zu ändern.
Zum Beispiel würde die Einstellung LANG=de_DE
deutsche Datums- und Uhrzeitformate verwenden.
Konvertierungen
Möglicherweise musst du Datums- und Uhrzeitformate für verschiedene Zwecke konvertieren. Du kannst hierfür Befehle wie date -d
, date +%s
und strftime
verwenden.
Beispiel: Konvertierung von POSIX-Zeit in ISO 8601-Format:
echo 1646793800 | date -d @%s +%Y-%m-%dT%H:%M:%S
Ausgabe: 2023-03-08T14:30:00
Verwendung des Befehls "date" zum Anzeigen und Ändern des Datums
Der Befehl date
ist ein vielseitiges Tool in Linux, mit dem du das aktuelle Datum und die aktuelle Uhrzeit anzeigen, das Format anpassen und sogar das Systemdatum ändern kannst. Hier erfährst du, wie du den Befehl date
effektiv nutzt.
Anzeigen des aktuellen Datums und der Uhrzeit
Um das aktuelle Datum und die Uhrzeit anzuzeigen, führe einfach den Befehl date
aus:
$ date
Mon Aug 1 00:00:00 UTC 2023
Dies zeigt das aktuelle Datum im Montag, 1. August 2023, um 00:00:00 Uhr in koordinierter Weltzeit (UTC) an. Du kannst auch die Option -u
verwenden, um die Uhrzeit in UTC anzuzeigen, selbst wenn dein System auf eine andere Zeitzone eingestellt ist:
$ date -u
Mon Aug 1 01:00:00 UTC 2023
Anpassen des Datumsformats
Mit dem Befehl date
kannst du das Ausgabeformat anpassen, indem du Formatzeichenfolgen verwendest. Die am häufigsten verwendeten Formatzeichenfolgen sind:
-
%Y
: Jahr mit vier Ziffern -
%m
: Monat mit zwei Ziffern -
%d
: Tag des Monats mit zwei Ziffern -
%H
: Stunde mit zwei Ziffern (24-Stunden-Format) -
%M
: Minute mit zwei Ziffern -
%S
: Sekunde mit zwei Ziffern
Zum Beispiel kannst du Folgendes ausführen, um das Datum im Format "JJJJ-MM-TT hh:mm:ss" anzuzeigen:
$ date +%F %T
2023-08-01 01:03:33
Ändern des Systemdatums
Du kannst den Befehl date
auch verwenden, um das Systemdatum zu ändern. Hierfür benötigst du jedoch Root-Berechtigungen. Führe den folgenden Befehl aus, um das Datum auf den 1. Januar 2023 zu setzen:
$ sudo date 010120230000
Denke daran, dass die Änderung des Systemdatums Auswirkungen auf andere Anwendungen haben kann, die auf die aktuelle Zeit angewiesen sind.
Verwendung von Datumsformatzeichenfolgen
Um ein Datum oder eine Uhrzeit in einem bestimmten Format auszugeben, kannst du Datumsformatzeichenfolgen verwenden. Diese Zeichenfolgen bestehen aus einem Prozentzeichen (%) gefolgt von einem Formatbezeichner, der angibt, welcher Teil von Datum und Uhrzeit ausgegeben werden soll.
Formatbezeichner
Die am häufigsten verwendeten Formatbezeichner sind:
- %a: Abgekürzter Wochentag
- %A: Vollständiger Wochentag
- %b: Abgekürzter Monatsname
- %B: Vollständiger Monatsname
- %d: Tag des Monats (01-31)
- %H: Stunde (00-23)
- %I: Stunde (01-12)
- %m: Monat des Jahres (01-12)
- %M: Minute (00-59)
- %S: Sekunde (00-59)
- %y: Die letzten beiden Ziffern des Jahres (00-99)
- %Y: Das vollständige Jahr (0001-9999)
Beispiel
Um das aktuelle Datum in folgendem Format auszugeben: Tag, Monat Tag, Jahr
, verwendest du folgende Datumsformatzeichenfolge:
date +%A, %B %d, %Y
Die Ausgabe wäre zum Beispiel: Donnerstag, Juni 22, 2023
.
Benennung eigener Formate
Du kannst auch deine eigenen Datumsformate benennen, indem du sie der Umgebungsvariablen DATE_FORMAT
zuweist. Um beispielsweise ein Format zu definieren, das das Datum im Format JJJJ-MM-TT
ausgibt, würdest du Folgendes ausführen:
export DATE_FORMAT=%Y-%m-%d
Danach kannst du den Befehl date
ohne Argumente verwenden, um das Datum im angegebenen Format auszugeben.
Formatieren von Datum und Uhrzeit mit "strftime"
Die Funktion strftime
ist ein leistungsstarkes Werkzeug zum Formatieren von Datums- und Uhrzeitwerten. Sie ermöglicht es dir, das Ausgabeformat nach deinen Wünschen anzupassen und spezifischere Informationen zu extrahieren, als es mit dem Befehl date
möglich ist.
Was ist "strftime"?
strftime
steht für "strftime" und ist eine C-Bibliotheksfunktion, die zum Formatieren von Datums- und Uhrzeitwerten verwendet wird. Sie nimmt zwei Argumente entgegen:
- Ein Datums-/Uhrzeitwert (normalerweise das Ergebnis eines Aufrufs von
time(NULL)
) - Eine Formatzeichenfolge, die angibt, wie das Datum und die Uhrzeit formatiert werden sollen
Formatzeichenfolgen
Formatzeichenfolgen sind eine Sammlung von codes, die die verschiedenen Komponenten von Datum und Uhrzeit darstellen. Hier sind einige der gängigsten Formatcodes:
- %a: Abgekürzter Wochentagname
- %b: Abgekürzter Monatsname
- %d: Tag des Monats (01-31)
- %H: Stunde (00-23)
- %M: Minute (00-59)
- %S: Sekunde (00-59)
- %Y: Jahr (z. B. 2023)
Verwendung von "strftime"
Um strftime
zu verwenden, musst du die Funktion mit den folgenden Schritten aufrufen:
-
Includiere die Bibliothek: Füge deinem Programm
#include <time.h>
hinzu. -
Hole den Datums-/Uhrzeitwert: Rufe
time(NULL)
auf, um den aktuellen Datums-/Uhrzeitwert zu erhalten. - Definiere die Formatzeichenfolge: Erstelle eine Zeichenfolge, die die gewünschten Formatcodes enthält.
- Allokiere Speicherplatz für das formatierte Datum: Allokiere genügend Speicherplatz für das formatierte Datum.
-
Formatiere das Datum: Rufe
strftime
auf und übergib den Datums-/Uhrzeitwert, die Formatzeichenfolge und den Speicherplatz für das formatierte Datum.
Beispiel
Der folgende Code zeigt, wie du strftime
verwendest, um das Datum und die Uhrzeit im ISO 8601-Format zu formatieren:
#include <time.h>
#include <stdio.h>
int main() {
time_t now = time(NULL);
char buf[100];
strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%SZ", localtime(&now));
printf("%s\n", buf);
return 0;
}
Dieser Code gibt eine Zeichenfolge wie "2023-03-08T14:30:00Z" aus.
Lokalisierung von "strftime"
strftime
kann auch verwendet werden, um Datums- und Uhrzeitwerte zu lokalisieren. Dazu musst du die Umgebungsvariable LC_TIME
auf das gewünschte Gebietsschema einstellen.
Anpassung von "strftime"
Du kannst benutzerdefinierte Formatcodes erstellen, indem du die %
-Spezifizierung mit Modifikatoren und Zeichenfolgen kombinierst. Weitere Informationen findest du in der Manpage zu strftime
.
Lokalisieren von Datums- und Uhrzeitformaten
Das Linux-Datumsformat ist standardmäßig auf die englische Sprache eingestellt. Falls du jedoch in einer anderen Region oder Sprache lebst, möchtest du vielleicht die Datums- und Uhrzeitformate lokalisieren, um sie besser lesen und verstehen zu können.
Vorteile der Lokalisierung
Die Lokalisierung von Datums- und Uhrzeitformaten bietet mehrere Vorteile:
- Verbesserte Lesbarkeit: Durch die Verwendung vertrauter Formate werden Datumsangaben und Uhrzeiten für dich viel einfacher zu lesen und zu verstehen sein.
- Fehlerreduzierung: Wenn du das richtige Datums- und Uhrzeitformat für deine Region verwendest, verringert sich das Risiko, dass du bei der Eingabe oder Interpretation von Daten Fehler machst.
- Kulturelle Relevanz: Die Verwendung lokalisierter Formate zeigt deine Rücksichtnahme auf die kulturellen Normen und Bräuche.
Wie man Datums- und Uhrzeitformate lokalisiert
Um Datums- und Uhrzeitformate zu lokalisieren, folge diesen Schritten:
1. Umgebungsvariablen festlegen
Du kannst die Umgebungsvariablen LANG
und LC_TIME
festlegen, um die Sprache und das Gebietsschema für Datums- und Uhrzeitformate zu ändern. Zum Beispiel kannst du für Deutsch in Deutschland Folgendes eingeben:
export LANG=de_DE.UTF-8
export LC_TIME=de_DE.UTF-8
2. Lokale tools verwenden
Es gibt Tools wie localectl
und locale
, mit denen du die Gebietsschemaeinstellungen deines Systems verwalten kannst. Mit localectl
kannst du die aktuelle Gebietsschemaeinstellung anzeigen und ändern:
localectl status
localectl set-locale LANG=de_DE.UTF-8
3. Lokalisierte Anwendungen verwenden
Viele Linux-Anwendungen unterstützen die Lokalisierung. Überprüfe in den Anwendungseinstellungen, ob Optionen zum Ändern des Datums- und Uhrzeitformats verfügbar sind.
Häufige Probleme
- Fehlende Gebietsschemaunterstützung: Einige Gebietsschemata werden möglicherweise nicht von deinem System oder deinen Anwendungen unterstützt.
- Inkonsistente Formate: Unterschiedliche Anwendungen können unterschiedliche Lokalisierungseinstellungen verwenden, was zu inkonsistenten Datums- und Uhrzeitformaten führen kann.
- Kompatibilitätsprobleme: Die Lokalisierung von Datums- und Uhrzeitformaten kann Probleme bei der Interaktion mit Systemen oder Anwendungen verursachen, die andere Formate verwenden.
Anpassen des Datums- und Uhrzeitformats
Wenn die Standardformate für Datum und Uhrzeit deinen Anforderungen nicht entsprechen, kannst du sie an deine Bedürfnisse anpassen.
Lokalisieren des Datums- und Uhrzeitformats
Du kannst das Datums- und Uhrzeitformat gemäß deinem lokalen Standard lokalisieren. Dies bedeutet, dass Datum und Uhrzeit entsprechend den Regeln deines Gebietsschemas angezeigt werden, z. B. mit dem richtigen Datums- und Zeitformat, den lokalen Namen der Monate und Wochentage und der lokalen Zeitzone.
Um das Datums- und Uhrzeitformat zu lokalisieren, setze die Umgebungsvariable LC_TIME
auf den entsprechenden Gebietsschemacode. Beispiel:
export LC_TIME=de_DE.UTF-8
Angepasste Datumsformatzeichenfolgen verwenden
Du kannst auch benutzerdefinierte Datumsformatzeichenfolgen verwenden, um Datum und Uhrzeit in einem bestimmten Format anzuzeigen. Die Syntax lautet:
date +%<Formatzeichenfolge>
Hier sind einige gängige Formatzeichenfolgen:
-
%Y
: Jahr (z. B. 2023) -
%m
: Monat (z. B. 03) -
%d
: Tag (z. B. 15) -
%H
: Stunde (24-Stunden-Format, z. B. 14) -
%M
: Minute (z. B. 05) -
%S
: Sekunde (z. B. 09)
Beispiel:
date +%d.%m.%Y
Ausgabe:
15.03.2023
strftime
zum Formatieren von Datum und Uhrzeit verwenden
Die Funktion strftime
aus der Bibliothek libc
bietet eine flexible Möglichkeit zum Formatieren von Datum und Uhrzeit. Sie nimmt einen Formatstring als Argument, der die Formatierungsregeln angibt, ähnlich wie bei date
.
Hier ist ein Beispiel:
strftime "%A, %d %B %Y"
Ausgabe:
Mittwoch, 15. März 2023
Zusätzliche Anpassungen
Zusätzlich zu den oben genannten Methoden gibt es weitere Möglichkeiten zum Anpassen des Datums- und Uhrzeitformats, z. B.:
- Verwendung von UTC-Zeit (Coordinated Universal Time) durch Setzen der Umgebungsvariable
TZ
aufUTC
- Verwenden von Zeitzoneninformationen aus einer Zeitzonendatenbank wie TZ Database
- Anpassen der Datums- und Uhrzeiteinstellungen in Desktop-Umgebungen wie GNOME oder KDE
Datumskonvertierungen vornehmen
Dateien, Datenbanken und APIs verwenden häufig unterschiedliche Datumsformate. Daher wirst du wahrscheinlich irgendwann auf die Notwendigkeit stoßen, Datumsangaben zwischen verschiedenen Formaten zu konvertieren.
Von einem Format in ein anderes konvertieren
Angenommen, du hast ein Datum im Format "JJJJ-MM-TT" und möchtest es in das Format "TT/MM/JJJJ" konvertieren. In Bash kannst du dies mithilfe der Befehle date
und tr
erreichen:
datum="2023-08-15"
konvertiertes_datum=$(echo "$datum" | tr '-' '/')
echo "$konvertiertes_datum"
Zeitzonen konvertieren
In manchen Fällen musst du Datum und Uhrzeit möglicherweise zwischen verschiedenen Zeitzonen konvertieren. Das Dienstprogramm tzconvert
kann für diesen Zweck verwendet werden:
# Konvertiere von UTC nach PST
datum_utc="2023-08-15 12:00:00 UTC"
datum_pst=$(tzconvert "$datum_utc" PST)
echo "$datum_pst"
Datumsangaben in Sekunden konvertieren
Manchmal ist es hilfreich, Datumsangaben in Sekunden seit Epoche (1. Januar 1970) darzustellen. Dies kann mit dem Befehl date
mit der Option +%s
erreicht werden:
datum="2023-08-15 12:00:00"
sekunden=$(date -d "$datum" +%s)
echo "$sekunden"
Aus Sekunden Datumsangaben generieren
Umgekehrt kannst du mit Hilfe der Option -d
des Befehls date
aus einer Anzahl von Sekunden seit Epoche eine Datumsangabe erstellen:
sekunden=1660550400
datum=$(date -d @$sekunden)
echo "$datum"
Ressourcen
Häufige Probleme mit Datumsformaten in Linux
Bei der Arbeit mit Datumsformaten in Linux können folgende Probleme auftreten:
Umwandlungsfehler
- Zeitüberschreitungen: Bei der Konvertierung von Datumsangaben, die einen bestimmten Bereich überschreiten, können Zeitüberschreitungen auftreten. Stelle sicher, dass die Datumsangaben innerhalb des gültigen Bereichs für den verwendeten Datentyp liegen.
- Datumswert außerhalb des gültigen Bereichs: Wenn ein Datumswert außerhalb des gültigen Bereichs liegt (z. B. ein negativer Zeitstempel), kann die Konvertierung fehlschlagen. Überprüfe die Datumsangaben, bevor du sie konvertierst.
Inkompatible Formate
- Unterschiedliche Datumsformate: Linux verwendet mehrere Datumsformate. Stelle sicher, dass du das richtige Format für deine Anwendung verwendest.
- Lokale Einstellungen: Datumsformate können je nach den lokalen Einstellungen variieren. Berücksichtige die Lokalisierungseinstellungen bei der Arbeit mit Datumsangaben.
Zeitzonenprobleme
- Falsche Zeitzone: Wenn die Zeitzone nicht korrekt eingestellt ist, können Datumsangaben falsch angezeigt oder konvertiert werden. Überprüfe die Zeitzoneneinstellungen und stelle sicher, dass sie auf den richtigen Wert eingestellt sind.
- Sommerzeit: Die Sommerzeit kann Datumsangaben beeinflussen, insbesondere in Bezug auf Zeitverschiebungen. Berücksichtige die Sommerzeit bei der Arbeit mit Datumsangaben.
Formatierungsprobleme
- Falsche Formatierungzeichenfolgen: Formatierungzeichenfolgen müssen korrekt formatiert sein, um das gewünschte Datumsformat zu erzeugen. Überprüfe die Formatierungzeichenfolgen sorgfältig, um sicherzustellen, dass sie gültig sind.
- Unangemessene Formatierung für die Anwendung: Die gewählte Formatierung kann für die spezifische Anwendung ungeeignet sein. Wähle ein Format, das für die beabsichtigte Verwendung geeignet ist.
Sonderfälle
- Leerzeichen in Datumszeichenfolgen: Leerzeichen in Datumszeichenfolgen können zu Problemen bei der Konvertierung oder Formatierung führen. Entferne alle Leerzeichen aus den Datumszeichenfolgen.
- Datumsangaben im Julianischen Kalender: Bei der Arbeit mit Datumsangaben im Julianischen Kalender sind möglicherweise zusätzliche Konvertierungen erforderlich. Verwende Hilfsbibliotheken oder Tools, die die Konvertierung zwischen dem Julianischen und dem Gregorianischen Kalender unterstützen.
Neue Posts
Der WPS PIN: Dein Tor zu Wi-Fi-Sicherheit und -Komfort
Cybersecurity
FRITZ!Box 7590: So beheben Sie einen defekten WLAN-Chip
Produktbewertung
Die besten Überwachungskamera-Apps: Schützen Sie Ihr Zuhause jederzeit und überall
Technologie
login.wifionice.db: Verstehen und Beheben von Verbindungsproblemen
Fehlerbehebung
Clear Linux: Ein performantes und sicheres Betriebssystem für Cloud und Desktop
Sicherheit
Asahi Linux: Debian-Distribution für Apple-Silicon-Macs
Technologie und Innovation
Du Sort By Size: Sortiere Deine Daten effektiv für bessere Entscheidungen
Effizienzsteigerung
PDF24 für Linux: Erstellen, Bearbeiten und Bearbeiten von PDFs unter Linux
Open Source
WLAN dBm-Tabelle: Signalstärke verstehen und Netzwerkprobleme beheben
Fehlerbehebung
Hoymiles HM-800: Schritt-für-Schritt-Anleitung zur WLAN-Verbindung
Fehlerbehebung
Beliebte Posts
Der WPS PIN: Dein Tor zu Wi-Fi-Sicherheit und -Komfort
Cybersecurity
FRITZ!Box 7590: So beheben Sie einen defekten WLAN-Chip
Produktbewertung
Die besten Überwachungskamera-Apps: Schützen Sie Ihr Zuhause jederzeit und überall
Technologie
login.wifionice.db: Verstehen und Beheben von Verbindungsproblemen
Fehlerbehebung
Clear Linux: Ein performantes und sicheres Betriebssystem für Cloud und Desktop
Sicherheit
Asahi Linux: Debian-Distribution für Apple-Silicon-Macs
Technologie und Innovation
Du Sort By Size: Sortiere Deine Daten effektiv für bessere Entscheidungen
Effizienzsteigerung
PDF24 für Linux: Erstellen, Bearbeiten und Bearbeiten von PDFs unter Linux
Open Source
WLAN dBm-Tabelle: Signalstärke verstehen und Netzwerkprobleme beheben
Fehlerbehebung
Hoymiles HM-800: Schritt-für-Schritt-Anleitung zur WLAN-Verbindung
Fehlerbehebung