JavaScript-Zeitstempel in ISO 8601 umwandeln
Wandeln Sie einen JavaScript-Zeitstempel in ein präzises ISO-8601-Datum um, ohne von der aktuellen Zeit, der Browser-Locale oder der Serveruhr abhängig zu sein.
Im Browser ausführen – kostenlos
Geben Sie eine ganze Zahl mit den Millisekunden seit der Unix-Epoche ein. Sie erhalten den passenden UTC-Zeitpunkt mit drei Millisekundenstellen und abschließendem Z. Die Berechnung ist deterministisch: Dieselbe Zahl erzeugt stets dieselbe Zeichenfolge. Auch negative Werte vor 1970 und der gesamte JavaScript-Zeitbereich werden unterstützt, sodass sich das Werkzeug für Protokolle, Migrationen und reproduzierbare Tests eignet.
Geben Sie Millisekunden statt Sekunden ein
JavaScript-Zeitstempel zählen gewöhnlich Millisekunden seit 1970-01-01T00:00:00.000Z, viele Unix-Werkzeuge und APIs hingegen Sekunden. Dieser Faktor tausend ist die häufigste Ursache überraschender Umwandlungen. Fügen Sie den Zahlenwert genau so ein, wie JavaScript ihn liefert: ohne Anführungszeichen, Trennzeichen, Einheit oder Rechenausdruck. Der Konverter nimmt ganze Zahlen an, weil eine ISO-Zeichenfolge mit drei Nachkommastellen ganze Millisekunden exakt darstellt. Dezimalwerte, nicht endliche Zahlen und Zahlentext werden abgelehnt, statt still gerundet oder erraten zu werden. So führt eine fehlerhafte Eingabe nicht zu einem glaubwürdig wirkenden, aber falschen Datum. Falls Ihre Quelle Sekunden verwendet, multiplizieren Sie den Wert vor dem Senden mit tausend, sofern das Ergebnis im zulässigen Bereich liegt. Das Feld timestamp_ms wiederholt die akzeptierte Zahl und hält damit die Verbindung zwischen Quelldaten und formatierter Darstellung fest.
Verstehen Sie das deterministische UTC-Ergebnis
Das Ergebnis ist ein ISO-8601-Zeitpunkt in UTC. Das abschließende Z bezeichnet den Offset null zu UTC, nicht die lokale Zeitzone der anfragenden Person. Stunden, Minuten, Sekunden und Millisekunden bleiben deshalb über Regionen, Zeitumstellungen und Laufzeitkonfigurationen hinweg stabil. Die Berechnung liest keine Uhr und verwendet das JavaScript-Date-Objekt nicht. Sie zerlegt den Zeitstempel in einen vollständigen UTC-Tag und eine nicht negative Tageszeit und wandelt die Tageszahl mit begrenzter gregorianischer Arithmetik um. Eine identische Eingabe kann daher weder durch Locale noch Ausführungszeit abweichen. Negative Zeitstempel werden abgerundet geteilt, sodass die Millisekunde vor der Unix-Epoche korrekt zu 1969-12-31 gehört. Jahre außerhalb von 0000 bis 9999 erscheinen in der vorzeichenbehafteten erweiterten Schreibweise.
Verwenden Sie die Ausgabe zuverlässig
Nutzen Sie das Feld iso, wenn eine kanonische UTC-Angabe lesbarer ist als eine Epoch-Zahl, etwa in strukturierten Logs, Konsolen, Audits, JSON-Fixtures, Migrationsberichten oder API-Antworten. Zahl und Zeichenfolge gemeinsam aufzubewahren hilft, Verwechslungen zwischen Sekunden und Millisekunden zu erkennen. Die Umwandlung formatiert nur: Sie bestimmt keine Zeitzone, leitet keinen Ereignisort ab und erzeugt keine regionale Anzeige. Führen Sie diese Schritte separat aus und behalten Sie UTC als Transportformat. Der zulässige Bereich entspricht der JavaScript-Grenze von plus oder minus 8,640,000,000,000,000 Millisekunden. Werte außerhalb davon sowie NaN, Infinity, fehlende Werte, Strings und Bruchteile werden abgelehnt. Netzwerk, Zufall, Locale und Uhr beeinflussen die Antwort nicht. Sie können die API für $0.002 aufrufen oder die Browserausführung nutzen und stets ein reproduzierbares Ergebnis erwarten.
Anwendungsfälle
Anwendungslogs lesen
Machen Sie aus einem undurchsichtigen Millisekundenfeld einen dienst- und regionsübergreifend vergleichbaren UTC-Zeitpunkt.
Stabile Test-Fixtures erstellen
Erzeugen Sie einen kanonischen ISO-Wert aus einem festen Zeitstempel, unbeeinflusst von Uhr oder Zeitzone.
Zeitmigrationen prüfen
Bewahren Sie die ursprüngliche Zahl neben der ISO-Form auf, während Sie Datenumwandlungen kontrollieren.
Häufige Fragen
Erwartet die Eingabe Sekunden oder Millisekunden?
Millisekunden. JavaScript zählt seit der Unix-Epoche; multiplizieren Sie Sekundenwerte zuerst mit 1,000.
Wird meine lokale Zeitzone verwendet?
Nein. Die Ausgabe ist stets UTC, erkennbar am abschließenden Z, und unabhängig von Browser oder Server.
Sind Datumswerte vor 1970 möglich?
Ja. Geben Sie einen negativen Zeitstempel ein, um das entsprechende gregorianische UTC-Datum zu erhalten.
Warum werden Bruchteile abgelehnt?
Der Vertrag bildet exakte ganze Millisekunden mit drei Stellen ab; die Ablehnung verhindert stilles Runden.
Was kostet die Umwandlung?
Jeder API-Aufruf kostet $0.002. Die Browserausführung ermöglicht ebenfalls deterministische interaktive Umwandlungen.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/date/js-timestamp-to-iso \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"timestamp":1717245296789}'const res = await fetch("https://api.kit.forhosting.com/date/js-timestamp-to-iso", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"timestamp": 1717245296789
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/js-timestamp-to-iso",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"timestamp": 1717245296789
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/js-timestamp-to-iso", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"timestamp":1717245296789}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"timestamp":1717245296789}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/js-timestamp-to-iso", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"timestamp": 1717245296789
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.js_timestamp_to_iso",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |