ToolHub
View All Posts

Unix-Zeitstempel erklärt: Konvertierung zwischen Formaten

Unix-Zeitstempel sind eines der grundlegendsten Konzepte in der Informatik, doch viele Entwickler und Datenexperten sind immer noch verwirrt davon. Ob Sie API-Antworten debuggen, Logdateien analysieren oder Scheduling-Systeme aufbauen – das Verständnis, wie Unix-Zeitstempel funktionieren und wie man zwischen Formaten konvertiert, ist eine unverzichtbare Fähigkeit.

Was ist ein Unix-Zeitstempel?

Ein Unix-Zeitstempel, auch als Epochenzeit oder POSIX-Zeit bekannt, ist die Anzahl der Sekunden, die seit dem 1. Januar 1970, 00:00:00 UTC vergangen sind (ohne Schaltsekunden). Dieser Referenzpunkt wird als Unix-Epoche bezeichnet. Zeitstempel werden als einzelne Ganzzahl gespeichert, was Vergleiche, Sortierung und die Berechnung von Zeitdifferenzen vereinfacht.

Zum Beispiel entspricht der Unix-Zeitstempel 1700000000 dem 14. November 2023, 22:13:20 UTC. Die Einfachheit, Zeit als einzelne Zahl darzustellen, macht Unix-Zeitstempel zum Standard für die Zeitdarstellung in Betriebssystemen, Datenbanken und Programmiersprachen.

Warum Unix-Zeitstempel verwenden

Gängige Zeitstempelformate

Verschiedene Systeme verwenden unterschiedliche Zeitstempelformate. Das Verständnis dieser Unterschiede hilft Ihnen, präzise zwischen ihnen zu konvertieren.

FormatBeispielVerwendet von
Unix-Sekunden1700000000Linux, APIs, Datenbanken
Unix-Millisekunden1700000000000JavaScript, Java
Unix-Mikrosekunden1700000000000000Python, Go
ISO 86012023-11-14T22:13:20ZREST API, JSON
RFC 2822Tue, 14 Nov 2023 22:13:20 +0000E-Mail-Header, HTTP

Unix-Zeitstempel in lesbare Daten umwandeln

In JavaScript

JavaScript stellt Zeitstempel in Millisekunden dar. Um einen Unix-Zeitstempel in Sekunden in ein JavaScript-Date-Objekt umzuwandeln, multiplizieren Sie ihn zuerst mit 1000. Verwenden Sie dann Methoden wie toLocaleString() oder toISOString() zur Formatierung der Ausgabe.

In Python

Das datetime-Modul von Python bietet die Methode fromtimestamp(), um Unix-Zeitstempel in datetime-Objekte umzuwandeln. Python unterstützt auch Zeitstempel mit Mikrosekunden-Genauigkeit über datetime.fromtimestamp(ts, tz=timezone.utc).

In der Befehlszeile

Unter Linux und macOS kann der date-Befehl Zeitstempel konvertieren. Verwenden Sie date -d @1700000000 unter Linux oder date -r 1700000000 unter macOS, um ein lesbares Datum aus einem Unix-Zeitstempel zu erhalten.

Mit Online-Tools

Der schnellste Weg, Zeitstempel zu konvertieren, ist die Verwendung eines Online-Konverters. Fügen Sie Ihren Zeitstempel ein, und das Tool zeigt sofort das entsprechende Datum und die Uhrzeit in mehreren Formaten an. Probieren Sie unseren kostenlosen Zeitstempel-Konverter für schnelle Umwandlungen.

Daten in Unix-Zeitstempel umwandeln

Die umgekehrte Konvertierung – ein lesbares Datum in einen Unix-Zeitstempel umzuwandeln – ist ebenso wichtig. Dies wird häufig benötigt, wenn Daten an APIs gesendet, vom Benutzer ausgewählte Daten gespeichert oder zukünftige Ereignisse geplant werden.

Erstellen Sie in JavaScript ein Date-Objekt und rufen Sie getTime() auf, um den Zeitstempel in Millisekunden zu erhalten, und teilen Sie dann durch 1000, um Sekunden zu erhalten. Verwenden Sie in Python datetime.timestamp(), um direkt einen Unix-Zeitstempel zu erhalten. Die meisten Programmiersprachen bieten ähnliche integrierte Methoden.

Das Jahr-2038-Problem

Systeme, die Unix-Zeitstempel als 32-Bit-Ganzzahlen mit Vorzeichen speichern, werden am 19. Januar 2038 um 03:14:07 UTC überlaufen. Zu diesem Zeitpunkt erreicht der Zeitstempel 2.147.483.647, den Maximalwert einer 32-Bit-Ganzzahl mit Vorzeichen, und springt dann auf negative Werte um, wodurch Daten als 1901 angezeigt werden.

Dieses Problem, bekannt als Jahr-2038-Problem oder Y2K38, betrifft ältere Systeme und eingebettete Geräte. Die Lösung besteht darin, Zeitstempel als 64-Bit-Ganzzahlen zu speichern, was den darstellbaren Bereich auf etwa 292 Milliarden Jahre erweitert. Die meisten modernen Betriebssysteme, Datenbanken und Programmiersprachen sind bereits auf 64-Bit-Zeitstempel umgestiegen.

Entwickler-Tipp: Verwenden Sie immer 64-Bit-Ganzzahlen beim Speichern von Zeitstempeln in Datenbanken und APIs. Wenn Sie JavaScript verwenden, denken Sie daran, dass Date.getTime() Millisekunden und nicht Sekunden zurückgibt. Teilen Sie durch 1000, wenn Sie mit Systemen interagieren, die Sekunden erwarten.

Umgang mit Zeitzonen

Unix-Zeitstempel verwenden immer UTC, wodurch Zeitzonen-Mehrdeutigkeiten beseitigt werden. Die Anzeige von Zeitstempeln für Benutzer erfordert jedoch die Umrechnung in deren lokale Zeitzone. Hier sind die wichtigsten Überlegungen:

Häufige Fallstricke

Müssen Sie zwischen Unix-Zeitstempeln und lesbaren Daten konvertieren? Probieren Sie unseren kostenlosen Zeitstempel-Konverter.

Zeitstempel-Konverter ausprobieren

Häufig gestellte Fragen

Was ist die Unix-Epoche?

Die Unix-Epoche ist der 1. Januar 1970, 00:00:00 UTC. Sie dient als Referenzpunkt für alle Unix-Zeitstempelberechnungen. Ein Zeitstempel repräsentiert die Anzahl der seit diesem Zeitpunkt vergangenen Sekunden.

Werden Unix-Zeitstempel irgendwann aufgebraucht sein?

Unix-Zeitstempel als 32-Bit-Ganzzahlen mit Vorzeichen werden am 19. Januar 2038 überlaufen, was als Jahr-2038-Problem bekannt ist. Systeme, die 64-Bit-Ganzzahlen verwenden, werden dieses Problem für etwa 292 Milliarden Jahre nicht haben. Die meisten modernen Systeme sind bereits auf 64-Bit-Zeitstempel umgestiegen.

Werden Unix-Zeitstempel von Zeitzonen beeinflusst?

Nein, Unix-Zeitstempel verwenden immer UTC und werden nicht von Zeitzonen beeinflusst. Derselbe Zeitstempel repräsentiert weltweit denselben Zeitpunkt. Zeitzonenumrechnungen finden nur statt, wenn Zeitstempel als lesbare Daten angezeigt werden.

Was ist der Unterschied zwischen Sekunden und Millisekunden bei Zeitstempeln?

Standard-Unix-Zeitstempel messen die Zeit seit der Epoche in Sekunden, während JavaScript und einige APIs Millisekunden verwenden. Ein Millisekunden-Zeitstempel ist das 1000-fache des Sekunden-Zeitstempels. Zum Beispiel entsprechen 1.700.000.000 Sekunden 1.700.000.000.000 Millisekunden.

Beeinflussen Schaltsekunden Unix-Zeitstempel?

Technisch gesehen ignorieren Unix-Zeitstempel Schaltsekunden. Jeder Tag wird so behandelt, als hätte er genau 86.400 Sekunden. Das bedeutet, dass die Unix-Zeit bei Einfügung von Schaltsekunden leicht von UTC abweichen kann, aber in der Praxis verursacht dies selten Probleme.