Die Methode Date.prototype.setUTCHours() setzt die Stunde eines Date-Objekts in der koordinierten Weltzeit (UTC). Optional können auch Minuten, Sekunden und Millisekunden in einem Aufruf gesetzt werden – ideal, um eine vollständige UTC-Uhrzeit atomar zu definieren. Im Unterschied zu setHours() ist die Methode nicht von der lokalen Zeitzone und schon gar nicht von Sommerzeit-Übergängen abhängig, was sie zur sichersten Wahl für serverseitige Zeitstempel macht.
Funktionsweise
Im Gegensatz zu setHours() ist die Methode unabhängig von der lokalen Zeitzone. Werte außerhalb der gültigen Bereiche führen zu einem entsprechenden Tagesüberlauf in UTC:
setUTCHours(24): +1 Tag, 0 Uhr UTC.setUTCHours(-1): Tag davor, 23 Uhr UTC.setUTCHours(0, 0, 0, 0): Mitternacht UTC – ein häufiges Muster für Tagesgrenzen.
UTC kennt keine Sommerzeit-Übergänge, was die Methode sehr robust macht.
Syntax
date.setUTCHours(hoursValue)
date.setUTCHours(hoursValue, minutesValue)
date.setUTCHours(hoursValue, minutesValue, secondsValue)
date.setUTCHours(hoursValue, minutesValue, secondsValue, msValue)hoursValue Eine Ganzzahl von 0 bis 23.
minutesValue (Optional) Eine Ganzzahl von 0 bis 59.
secondsValue (Optional) Eine Ganzzahl von 0 bis 59.
msValue (Optional) Eine Ganzzahl von 0 bis 999.
Rückgabewert
Die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC nach der Aktualisierung.
Beispiele
UTC-Stunde setzen
const date = new Date("2026-05-01T00:00:00Z");
date.setUTCHours(18);
console.log(date.toISOString());2026-05-01T18:00:00.000ZUTC-Mitternacht erzwingen
Der klassische Anwendungsfall: ein Datum auf den Anfang des UTC-Tages setzen, etwa für tägliche Reports.
function utcTagesAnfang(date) {
const result = new Date(date);
result.setUTCHours(0, 0, 0, 0);
return result;
}
const date = new Date("2026-05-01T14:30:42Z");
console.log(utcTagesAnfang(date).toISOString());2026-05-01T00:00:00.000ZUTC-Tagesende
function utcTagesEnde(date) {
const result = new Date(date);
result.setUTCHours(23, 59, 59, 999);
return result;
}
console.log(utcTagesEnde(new Date("2026-05-01T08:00:00Z")).toISOString());2026-05-01T23:59:59.999ZVolle UTC-Uhrzeit setzen
const date = new Date("2026-05-01T00:00:00Z");
date.setUTCHours(14, 30, 15, 250);
console.log(date.toISOString());2026-05-01T14:30:15.250ZHinweise & verwandte Methoden
- Für die lokale Variante:
Date.prototype.setHours(). - UTC-basierte Tagesgrenzen sind robuster als lokale, da Sommerzeit-Übergänge keine Rolle spielen.
- Für Cron-ähnliche Zeitlogik in Server-Anwendungen ist
setUTCHours()die Methode der Wahl. - Die Methode mutiert das Original.