Technik-Hilfe
Unix Timestamp in Sekunden vs. Millisekunden: Warum das Datum 1970 zeigt
Wird aus einem Unix-Timestamp ein Datum nahe 1970, sind oft Sekunden als Millisekunden gelesen. So unterscheiden Sie die Einheiten.
Zeigt ein Unix-Timestamp ein Datum nahe 1970, wird der Wert oft in der falschen Einheit gelesen.
Unix-Timestamps nutzen häufig Sekunden, JavaScript-Date häufig Millisekunden.
Ein heutiger 10-stelliger Timestamp ist oft Sekunden, ein 13-stelliger oft Millisekunden. Stimmen die Einheiten nicht, müssen Sie oft mit 1.000 multiplizieren oder dividieren.
Sie haben einen Timestamp umgerechnet und landen im Januar 1970. Das ist selten eine kaputte Uhr. Die Zahl wurde als Millisekunden gelesen, obwohl sie in Sekunden gespeichert war—oder umgekehrt.
Was ist ein Unix-Timestamp?
Ein Unix-Timestamp misst die Zeit seit der Unix-Epoche: 1970-01-01 00:00:00 UTC. Üblich sind ganze Sekunden. Derselbe Zeitpunkt kann auch in Millisekunden liegen (Sekunden × 1.000). Die Zahl selbst nennt die Einheit nicht.
Sekunden vs. Millisekunden: der 1.000-fache Unterschied
Eine Sekunde sind 1.000 Millisekunden. Vergleichen Sie 1720000000 mit 1720000000000. Ist das erste Sekunden und das zweite Millisekunden, ist es derselbe Moment. Lesen Sie das erste als Millisekunden, springt das Datum Richtung 1970.
Diese UTC-Ergebnisse wurden aus den Zahlen oben berechnet, nicht geschätzt.
| Wert | Wahrscheinliche Einheit | Deutung (UTC) |
|---|---|---|
| 1720000000 | Sekunden | Modernes Datum als Sekunden: 2024-07-03 09:46:40 UTC |
| 1720000000000 | Millisekunden | Derselbe Moment als Millisekunden: 2024-07-03 09:46:40 UTC |
| 1720000000 als Millisekunden | Falsche Einheit | Datum nahe 1970: 1970-01-20 21:46:40 UTC |
Warum zeigt mein Timestamp 1970?
Wird ein Sekundenwert als Millisekunden behandelt, ist die Zahl 1.000-mal zu klein. JavaScript zählt nur eine kurze Spanne nach der Unix-Epoche, das Datum bleibt 1970:
const seconds = 1720000000;
new Date(seconds);
// 1970-01-20 21:46:40 UTC
new Date(seconds * 1000);
// 2024-07-03 09:46:40 UTC
Das 1970-Datum ist die Epoche plus etwa zwei Wochen. Multiplizieren Sie Sekunden mit 1.000, bevor Sie sie an Date übergeben.
- SEKUNDEN
- 1720000000
- MILLISEKUNDEN
- 1720000000000
- Sekundenwert
- Fälschlich als Millisekunden gelesen
- Datum nahe 1970
Liegt das Ergebnis nahe 1970, prüfen Sie die Timestamp-Einheit, bevor Sie die Zeitzone untersuchen.
Sind 10 Stellen Sekunden und 13 Stellen Millisekunden?
Bei heutigen Daten sind 10 Stellen oft Sekunden und 13 oft Millisekunden. Das ist ein Hinweis, keine Prüfregel. Die Stellenanzahl ändert sich mit dem Zeitraum; manche APIs speichern Mikro- oder Nanosekunden. Bestätigen Sie die Einheit anhand der Dokumentation oder eines plausiblen Datums.
Warum das in JavaScript so oft passiert
In JavaScript ist ein numerischer Date-Wert Millisekunden seit der Epoche. Viele Backends, Datenbanken und Unix-Tools speichern weiter Sekunden. Einen Sekundenwert direkt an Date zu übergeben ist ein häufiger Fehler:
const unixSeconds = 1720000000;
const wrong = new Date(unixSeconds);
const correct = new Date(unixSeconds * 1000);
wrong liegt nahe 1970 (1970-01-20 21:46:40 UTC). correct ist der moderne Zeitpunkt (2024-07-03 09:46:40 UTC).
Andere Systeme nutzen andere Einheiten
Andere Sprachen, APIs und Datenbanken können Sekunden oder Millisekunden nutzen. Manche speichern Mikro- oder Nanosekunden. Gehen Sie nicht davon aus, dass eine Sprache immer eine Einheit nutzt—lesen Sie die Dokumentation. Steht die Zahl in JSON, macht JSON formatieren und vergleichen das Feld lesbar; die Einheit sagt es trotzdem nicht.
Wie erkenne ich die Einheit meines Timestamps?
Gehen Sie diese Checks der Reihe nach durch. Die Stellenanzahl allein reicht nicht.
- Prüfen Sie die API- oder Datenbankdokumentation.
- Schauen Sie auf die ungefähre Stellenzahl.
- Vergleichen Sie den Wert mit einem plausiblen heutigen Timestamp.
- Testen Sie den Wert als Sekunden und als Millisekunden.
- Prüfen Sie, ob das Ergebnisdatum Sinn ergibt.
Führt eine Deutung nach 1970 und die andere zu einem Datum, das Sie kennen, ist die Einheit die Ursache.
Häufige Fehler bei Unix-Timestamps
- Sekunden als Millisekunden gelesen. Das Datum fällt Richtung 1970, wie im Beispiel.
- Millisekunden als Sekunden gelesen. Das Datum springt weit in die Zukunft, oder die Umrechnung scheitert.
- Zweimal mit 1.000 multiplizieren. Ein schon millisekundenbasierter Wert wird riesig, das Datum liegt Jahrhunderte voraus.
- Zweimal durch 1.000 teilen. Ein Sekundenwert schrumpft erneut, wieder nahe 1970.
- Die Zeitzone beschuldigen. Eine Zone kann Stunden oder den Kalendertag verschieben. Sie macht aus einem heutigen Timestamp kein 1970.
- Einen formatierten Datumsstring als Unix-Timestamp behandeln. Ein Wert wie 2024-07-03T09:46:40Z ist keine Epoch-Zahl. Parsen Sie ihn als Datum, nicht als Sekunden.
Verursacht die Zeitzone das 1970-Problem?
Meist nein. Eine Zeitzone ändert die angezeigte Uhrzeit und nahe Mitternacht manchmal das Kalenderdatum. Sie macht aus einem modernen Unix-Timestamp kein 1970. Liegt das Ergebnis in 1970, prüfen Sie zuerst Sekunden gegen Millisekunden.
Unix-Timestamp umrechnen und prüfen
NEXNARA Datum- und Zeitkonverter kann einen Unix-Timestamp im Browser umrechnen.
Fügen Sie Unix-Sekunden oder -Millisekunden ein, nutzen Sie den aktuellen Timestamp, sehen Sie UTC und Ortszeit, rechnen Sie Zeitzonen um und formatieren Sie ein Datum. Die Autodetektion behandelt 10 Stellen oft als Sekunden und 13 als Millisekunden; Sie können die Einheit trotzdem wählen.
Die Umrechnung selbst läuft in Ihrem Browser. Dieses Tool sendet Daten und Timestamps nicht an einen NEXNARA-Server. Werbung und andere Site-Funktionen nutzen weiter das Netz; das ist von der Umrechnung getrennt.
Unix-Timestamp prüfen? Öffnen Sie Datum- und Zeitkonverter und vergleichen Sie Sekunden mit Millisekunden.
FAQ
Warum zeigt mein Unix-Timestamp 1970?
Oft sind es Sekunden, die als Millisekunden gelesen wurden. JavaScript behandelt eine viel kleinere Zahl, das Datum liegt knapp nach 1970-01-01 00:00:00 UTC. Multiplizieren Sie Sekunden mit 1.000 und rechnen Sie erneut um.
Sind Unix-Timestamps Sekunden oder Millisekunden?
Unix-Timestamps nutzen häufig Sekunden. Viele Web-APIs und JavaScript-Date nutzen Millisekunden. Prüfen Sie die Dokumentation. Manche Systeme nutzen Mikro- oder Nanosekunden.
Wie rechne ich Sekunden in Millisekunden um?
Mit 1.000 multiplizieren. 1720000000 Sekunden sind 1720000000000 Millisekunden. Andersherum durch 1.000 teilen.
Warum nutzt JavaScript-Date Millisekunden?
Der numerische Date-Timestamp in JavaScript ist als Millisekunden seit der Unix-Epoche definiert. Deshalb ist new Date(unixSeconds) falsch, wenn unixSeconds Unix-Sekunden sind.
Ist ein 10-stelliger Timestamp immer Sekunden?
Nein. Bei heutigen Daten oft ja, und 13 Stellen sind oft Millisekunden. Die Stellenzahl ist ein Hinweis, keine Regel. Bestätigen Sie das mit Dokumentation oder einem sinnvollen Datum.
Enthält ein Unix-Timestamp eine Zeitzone?
Nein. Ein Unix-Timestamp ist ein Zeitpunkt ab 1970-01-01 00:00:00 UTC. Zeitzonen beeinflussen die Anzeige, nicht die Zahl selbst.