So wandelst du Epoch-Zeit in ein lesbares Datum um
Epoch-Zeit in ein Datum umzuwandeln sind zwei Schritte: die Zahl als Zeitpunkt in UTC dekodieren und diesen Zeitpunkt dann in der gewünschten Zeitzone formatieren. Diese Anleitung erklärt das mentale Modell, wie man Sekunden von Millisekunden unterscheidet und die Entscheidung UTC gegen Lokalzeit, und verweist dann auf das Rezept je Sprache und den Sofort-Konverter.
Epoch zu Datum sind zwei Schritte
Einen Epoch-Timestamp in ein lesbares Datum umzuwandeln sind immer dieselben zwei Schritte: den Wert als Zeitpunkt in UTC dekodieren und diesen Zeitpunkt dann in der Zeitzone formatieren, in der du ihn anzeigen willst. Die Zahl selbst trägt keine Zeitzone — sie ist ein einziger Moment —, daher zeigt derselbe Wert je nach Zone eine andere Wanduhrzeit (manchmal einen anderen Kalendertag). Die Tabelle unten zeigt einen Timestamp in mehreren Zonen; der Rest dieser Anleitung behandelt die Einheit, die Zeitzonenwahl und den Code.
| Zeitzone | Lokales Datum und Uhrzeit für 1700000000 |
|---|---|
| UTC (der kanonische Zeitpunkt) | 2023-11-14 22:13:20 · ISO 2023-11-14T22:13:20Z |
| America/New_York | 2023-11-14 17:13:20 (EST) |
| Asia/Tokyo | 2023-11-15 07:13:20 (JST) |
| Australia/Sydney | 2023-11-15 09:13:20 (AEDT) |
Was ist Epoch-Zeit?
Epoch-Zeit (auch Unix-Zeit oder POSIX-Zeit genannt) ist die Anzahl der Sekunden seit dem 1. Januar 1970 um 00:00:00 UTC. Sie ist der universelle Standard zur Darstellung von Zeitpunkten in der Informatik. Jede Programmiersprache und jedes Betriebssystem unterstützt Epoch-Zeit nativ, was sie zum zuverlässigsten Format für das Speichern und Austauschen von Timestamps zwischen Systemen macht.
Schritt 1 — Sekunden oder Millisekunden erkennen
Bestimme vor dem Umwandeln die Einheit. Sie lässt sich fast immer an der Stellenzahl ablesen, und sie falsch zu lesen ist die häufigste Ursache für ein falsches Datum.
- 10 Stellen (z. B. 1700000000) → Sekunden seit der Unix-Epoch
- 13 Stellen (z. B. 1700000000000) → Millisekunden seit der Unix-Epoch
- 16 Stellen → Mikrosekunden; 19 Stellen → Nanosekunden
- Im Zweifel prüfen, ob das dekodierte Jahr plausibel wirkt — ein Jahr 1970 oder in ferner Zukunft bedeutet, dass die Einheit falsch gelesen wurde
- Der Konverter oben erkennt die Einheit automatisch
Schritt 2 — Als UTC dekodieren, dann eine Zeitzone wählen
Ein Unix-Timestamp dekodiert zu genau einem Zeitpunkt. Ob du diesen Zeitpunkt in UTC oder einer lokalen Zeitzone anzeigst, ist eine Darstellungsentscheidung, keine Eigenschaft der Zahl. Wähle UTC für alles Maschinengerichtete — Logs, APIs, Datenbankspeicherung, serverübergreifende Vergleiche — und wandle erst in dem Moment in die IANA-Zeitzone des Nutzers um, in dem du einem Menschen ein Datum zeigst. Identifiziere eine Zone immer über ihren IANA-Namen (America/New_York), nie über einen bloßen Offset, damit die Sommerzeit für dich angewendet wird.
- Maschinengerichtet (Logs, APIs, Speicherung) → in UTC anzeigen, ISO 8601 mit Z
- Nutzergerichtet (Deadlines, Timestamps in einer UI) → in die IANA-Zeitzone des Nutzers umwandeln
- Nie eine Lokalzeit ohne ihre Zone speichern — speichere UTC plus den IANA-Zonennamen
Die Umwandlung im Code
Jede moderne Sprache hat ein einzeiliges Built-in, das beide Schritte für dich erledigt. Das Muster ist immer dasselbe: übergib den Wert in der Einheit, die die Funktion erwartet, und fordere UTC oder eine bestimmte Zeitzone an. JavaScript und einige andere folgen unten; das begleitende Rezept behandelt JavaScript, Python, PHP, Java, C#, Go, SQL, Excel und Google Sheets vollständig.
- JavaScript: new Date(1700000000 * 1000).toISOString() → "2023-11-14T22:13:20.000Z"
- Python: datetime.fromtimestamp(1700000000, tz=timezone.utc).isoformat()
- Shell: date -u -d @1700000000 (GNU) / date -u -r 1700000000 (BSD, macOS)
- SQL: TO_TIMESTAMP(1700000000) (Postgres), FROM_UNIXTIME(1700000000) (MySQL)
- Regel: Sekunden übergeben, wo Sekunden erwartet werden — nur JavaScripts Date braucht das × 1000
Häufige Fehler beim Umwandeln von Epoch-Zeit
Die häufigsten Fehler beim Umwandeln von Unix-Timestamps:
- Vergessen, Sekunden in JavaScript mit 1000 zu multiplizieren — new Date(1700000000) ergibt das Jahr 1970, nicht 2023
- JavaScript-Millisekunden direkt als Sekunden in einer serverseitigen Sprache verwenden (ein 1000×-Fehler)
- Keine Zeitzone angeben und sich auf die lokale Zeitzone des Servers verlassen, die je nach Umgebung variiert
- Timestamps als Strings statt als Ganzzahlen speichern, was numerische Vergleiche und Arithmetik zerstört
- Das veraltete datetime.utcfromtimestamp() in Python verwenden — übergib stattdessen tz=timezone.utc an fromtimestamp()
Verwandte Artikel
FAQ
- Wie wandle ich Epoch-Zeit in ein Datum um?
- Bestimme, ob der Wert in Sekunden (10 Stellen) oder Millisekunden (13 Stellen) vorliegt, und wandle ihn dann mit der Datums-API deiner Sprache um — new Date(seconds * 1000) in JavaScript, datetime.fromtimestamp(seconds, tz=timezone.utc) in Python, oder füge ihn oben in den Konverter ein.
- Warum wird mein Epoch-Timestamp zu 1970?
- Du hast einen Sekundenwert an eine Funktion übergeben, die Millisekunden erwartet — meist JavaScripts new Date(). Multipliziere den 10-stelligen Sekundenwert zuerst mit 1000.
- Soll ich Epoch-Zeit in UTC oder Lokalzeit umwandeln?
- Nutze UTC für Logs, APIs und serverübergreifende Vergleiche und wandle nur zur Anzeige in die lokale Zeitzone des Nutzers um. Der Epoch-Wert selbst ist zeitzonenneutral.
- Wie erhalte ich in JavaScript ein Datum aus einem Unix-Timestamp?
- new Date(seconds * 1000) gibt ein Date-Objekt zurück, das du mit toISOString(), toUTCString() oder Intl.DateTimeFormat formatieren kannst. Die Multiplikation ist nötig, weil JavaScripts Date Millisekunden erwartet, nicht Sekunden.
- Wie erhalte ich in Python ein Datum aus einem Unix-Timestamp?
- Nutze datetime.fromtimestamp(seconds, tz=timezone.utc) für ein zeitzonenbewusstes UTC-datetime. Lass das tz-Argument für Lokalzeit weg, oder hänge .isoformat() an, um einen ISO-8601-String zu erhalten.
- Ergibt derselbe Epoch-Wert in verschiedenen Zeitzonen ein anderes Datum?
- Der Zeitpunkt ist überall gleich, aber das angezeigte Wanduhr-Datum hängt von der Zeitzone ab — und kann sogar auf einen anderen Kalendertag fallen. 1700000000 ist der 14. Nov. in New York, aber der 15. Nov. in Tokio.
- Wie wandle ich einen Timestamp in ein Datum um?
- Jede moderne Sprache hat ein einzeiliges Built-in. Das Schwierigste ist zu erkennen, ob dein Timestamp in Sekunden (10 Stellen) oder Millisekunden (13 Stellen) vorliegt — stimmt die Einheit, schlägt die Umwandlung selbst nie fehl.