Signatur
Beschreibung
getUTCMilliseconds() liefert den Millisekundenanteil eines Zeitpunkts als ganze Zahl zwischen 0 und 999. Gemeint ist nur der Bruchteil der aktuellen Sekunde, nicht die Gesamtzahl der Millisekunden seit der Unix-Epoche. Die bekommst du mit getTime().
Weil alle heute gebräuchlichen Zeitzonen-Offsets ganze Minuten sind, stimmt der Wert praktisch immer mit getMilliseconds() überein. Trotzdem ist die UTC-Variante die richtige Wahl, wenn du Zeitstempel zeitzonenunabhängig zerlegst, etwa beim Zusammenbauen eigener ISO-8601-Formate, beim Protokollieren (Logging) oder in Code, der auf dem Server und im Browser gleich laufen soll.
Die Methode nimmt keine Argumente und ändert das Date-Objekt nicht. Ist das Datum ungültig (Invalid Date), gibt sie NaN zurück.
Rückgabewert
0 bis 999: der Millisekundenanteil nach UTC. Bei ungültigem Datum NaN.Beispiele
Millisekunden aus einem ISO-Zeitstempel lesen
const d = new Date('2024-03-15T10:20:30.456Z');
console.log(d.getUTCMilliseconds());
Eigenes Log-Format mit Millisekunden (UTC)
const pad = (n, len = 2) => String(n).padStart(len, '0');
const logTime = (date = new Date()) =>
`${pad(date.getUTCHours())}:${pad(date.getUTCMinutes())}:` +
`${pad(date.getUTCSeconds())}.${pad(date.getUTCMilliseconds(), 3)}Z`;
console.log(logTime(new Date('2024-03-15T08:05:09.007Z')));
Unterschied zu getTime() und Verhalten bei ungültigem Datum
const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 1, 250));
console.log(d.getTime()); // Millisekunden seit 1970
console.log(d.getUTCMilliseconds()); // nur Bruchteil der Sekunde
const invalid = new Date('kein Datum');
console.log(invalid.getUTCMilliseconds());
// Wichtig · Fallstricke
- Nicht mit
getTime()verwechseln:getUTCMilliseconds()gibt nur 0–999 zurück, nie die Epochen-Millisekunden. - Genauigkeit:
Daterechnet nur mit ganzen Millisekunden. Nachkommastellen im Eingabestring, etwa.123456, werden abgeschnitten. Für feinere Messungen nimmperformance.now(). - Datenschutz: Einige Browser runden Zeitwerte absichtlich gröber, z. B. Firefox mit
privacy.resistFingerprinting. Dann kann der Wert öfter0oder ein Vielfaches von 100 sein. - Ungültige Daten: Das Ergebnis ist
NaN. Prüfe bei Bedarf vorher mitNumber.isNaN(date.getTime()). - Funktioniert in allen Browsern und in Node.js. Bei zweistelligen Werten wie
7musst du selbst auf drei Stellen auffüllen, z. B. mitpadStart(3, '0').