Sekunden oder Millisekunden
Der häufigste Fehler beim Umgang mit Daten ist, die beiden zu verwechseln. Unix-Timestamps zählen Sekunden seit 1970-01-01 UTC; JavaScripts Date.now() zählt Millisekunden. Geben Sie einen Unix-Timestamp ohne Multiplikation mit 1000 direkt in den Date-Konstruktor, landen Sie im Januar 1970. Als Faustregel ist eine 10-stellige Zahl Sekunden und eine 13-stellige Millisekunden -- genau so entscheidet die automatische Erkennung hier.
Die Standards und ihre Unterschiede
- ISO 8601 ist der Basistandard:
2024-01-15T10:30:00.000Z. Das T trennt Datum von Uhrzeit und Z bedeutet UTC.
- RFC 3339 ist ein strengeres Profil von ISO 8601 für Internetprotokolle. Es erfordert einen expliziten Offset, schreibt also
+00:00 statt Z.
- ISO 9075 ist die SQL-Standardform,
2024-01-15 10:30:00 -- ein Leerzeichen statt T und keine Zeitzone. Das ist, was die meisten Datenbanken ausgeben.
- RFC 7231 ist das HTTP-Datumsformat in den Headern
Date, Expires und Last-Modified, stets in GMT.
Die beiden Außenseiter
Eine Mongo ObjectID ist 12 Byte groß, und die ersten vier sind die Erstellungszeit in Unix-Sekunden, sodass jede ObjectID einen Timestamp in sich trägt. Dieses Werkzeug extrahiert ihn beim Dekodieren; beim Erzeugen einer solchen füllt es die verbleibenden acht Byte mit Nullen auf, statt Maschinen- und Zählerwerte zu erfinden.
Excel-Seriennummern zählen Tage seit 1899-12-30, wobei der Bruchteil die Tageszeit darstellt. Die eigenartige Epoche existiert, weil Excel absichtlich einen Lotus-1-2-3-Fehler reproduziert, der 1900 als Schaltjahr behandelte. Mit 1899-12-30 als Tag null stimmen alle Daten ab März 1900 korrekt überein -- weshalb dieser Konverter sie verwendet.
Alles ist ein einziger Zeitpunkt
Was Sie auch eingeben, das Werkzeug parst es in ein einziges JavaScript-Date und rendert diesen einen Zeitpunkt in allen elf Formaten neu. Nichts wird irgendwohin gesendet -- die Konvertierung läuft vollständig in Ihrem Browser.