Epoch-Millisekunden in Datum: 13-stellige Timestamps und Long-Werte umwandeln
Ein Guide zum Umwandeln von Epoch-Millisekunden in lesbare Daten. Behandelt 13-stellige Timestamps, JavaScript-Date, Java-Long-Werte, Millisekunden vs. Sekunden und warum die falsche Einheit 1970- oder ferne Zukunftsdaten erzeugt.
Was Epoch-Millisekunden sind
Epoch-Millisekunden zählen die Millisekunden seit dem 1. Januar 1970 um 00:00:00 UTC. Sie nutzen dieselbe Unix-Epoch wie Unix-Sekunden, aber mit drei zusätzlichen Stellen Präzision. Ein moderner Epoch-Millisekunden-Wert hat meist 13 Stellen, etwa 1700000000000.
So wandelt man Millis in ein Datum um
Liegt der Wert bereits in Millisekunden vor, kann JavaScript Date ihn direkt lesen. Erwartet das empfangende Tool Sekunden, teile zuerst durch 1000. Der Hauptfehler ist das Multiplizieren oder Teilen an der falschen Grenze.
- JavaScript: new Date(1700000000000).toISOString()
- Milliseconds to seconds: Math.floor(1700000000000 / 1000)
- Seconds to milliseconds: 1700000000 * 1000
- Java Instant: Instant.ofEpochMilli(1700000000000L)
- Python: datetime.fromtimestamp(ms / 1000, tz=timezone.utc)
Long zu Datum in Java und Datenbanken
Suchen nach „long zu Datum“ kommen oft aus Java, Kotlin, Android oder Datenbank-Exporten, wo ein Timestamp als 64-Bit-Ganzzahl gespeichert ist. Der Wert kann Epoch-Millisekunden sein, aber auch Sekunden, Mikro- oder Nanosekunden. Prüfe die Stellenzahl vor dem Umwandeln.
- 10 Stellen: wahrscheinlich Unix-Sekunden
- 13 Stellen: wahrscheinlich Unix-Millisekunden oder Java-long-Millisekunden
- 16 Stellen: wahrscheinlich Mikrosekunden
- 19 Stellen: wahrscheinlich Nanosekunden
- Benenne Spalten immer mit Einheit, etwa created_at_ms
Warum Millisekunden zu seltsamen Daten werden
Ein Millisekunden-Wert, als Sekunden behandelt, wird zu einem extrem fernen Zukunftsdatum. Ein Sekunden-Wert, als Millisekunden behandelt, wird zu einem Datum nahe Januar 1970. Die Stellen sind die schnellste Diagnose.
- 1700000000000 als Millisekunden = 2023-11-14 22:13:20 UTC
- 1700000000000 als Sekunden = etwa Jahr 55840, je nach Bibliothek
- 1700000000 als Sekunden = 2023-11-14 22:13:20 UTC
- 1700000000 als Millisekunden = 1970-01-20 16:13:20 UTC
FAQ zu Epoch-Millisekunden
- Ist Epoch-Zeit in ms dasselbe wie ein Unix-Timestamp?
- Sie nutzt dieselbe Epoch, aber die Einheit ist Millisekunden statt Sekunden. Klassischer Unix-Timestamp meint meist Sekunden.
- Wie viele Stellen hat ein Epoch-Millisekunden-Timestamp?
- Für aktuelle Daten haben Epoch-Millisekunden meist 13 Stellen.
- Nutzt JavaScript Millisekunden oder Sekunden?
- JavaScript Date nutzt Millisekunden. Date.now() liefert Epoch-Millisekunden.
- Wie wandle ich einen Java-long-Timestamp in ein Datum um?
- Ist der long in Epoch-Millisekunden, nutze Instant.ofEpochMilli(value); ist er in Epoch-Sekunden, nutze Instant.ofEpochSecond(value). Prüfe zuerst die Stellenzahl: 13 = Millisekunden, 10 = Sekunden.