Signatur
Beschreibung
getUTCHours() liefert die Stundenkomponente eines Date-Objekts als ganze Zahl zwischen 0 und 23, und zwar bezogen auf UTC und nicht auf die lokale Zeitzone der Laufzeitumgebung. Damit ist die Methode das UTC-Gegenstück zu getHours().
Man braucht sie immer dann, wenn Zeitangaben unabhängig vom Standort der Nutzer ausgewertet werden sollen, etwa beim Protokollieren auf dem Server, beim Vergleichen von Zeitstempeln aus verschiedenen Zeitzonen, beim Erzeugen von ISO-ähnlichen Zeitformaten oder bei der Planung von Vorgängen, die zu einer festen UTC-Stunde laufen, zum Beispiel Cronjobs oder Wartungsfenster.
Intern speichert ein Date-Objekt nur einen Zeitstempel in Millisekunden seit dem 1. Januar 1970, 00:00:00 UTC. getUTCHours() liest diesen Wert ohne Zeitzonen-Verschiebung aus. Deshalb ist das Ergebnis auf jedem System gleich, während getHours() je nach Zeitzone und Sommerzeit andere Werte liefert.
Rückgabewert
0 bis 23 mit der UTC-Stunde des Datums. Bei einem ungültigen Datum ist der Wert NaN.Beispiele
UTC-Stunde im Vergleich zur lokalen Stunde
// Zeitpunkt mit expliziter Zeitzone (+02:00, z. B. MESZ)
const termin = new Date('2024-07-15T14:30:00+02:00');
console.log(termin.getUTCHours()); // immer 12, egal wo der Code läuft
console.log(termin.getHours()); // hängt von der lokalen Zeitzone ab
Zeitstempel im Format HH:MM UTC für Logs
const pad = (n) => String(n).padStart(2, '0');
const formatUtcTime = (date) =>
`${pad(date.getUTCHours())}:${pad(date.getUTCMinutes())} UTC`;
const ereignis = new Date(Date.UTC(2024, 0, 1, 7, 5));
console.log(formatUtcTime(ereignis));
Prüfen, ob gerade ein Wartungsfenster (UTC) aktiv ist
// Wartung täglich zwischen 02:00 und 04:00 UTC
const istWartungsfenster = (date = new Date()) => {
const stunde = date.getUTCHours();
return stunde >= 2 && stunde < 4;
};
console.log(istWartungsfenster(new Date('2024-03-10T03:15:00Z')));
console.log(istWartungsfenster(new Date('2024-03-10T05:00:00Z')));
Ungültiges Datum abfangen
const kaputt = new Date('kein Datum');
const stunde = kaputt.getUTCHours();
console.log(stunde); // NaN
console.log(Number.isNaN(stunde)); // true
// Wichtig · Fallstricke
- UTC vs. lokal: Oft wird versehentlich
getHours()genommen, wogetUTCHours()gemeint ist, oder umgekehrt. Auf Entwicklerrechnern mit UTC-Zeitzone, etwa in CI-Umgebungen oder Docker-Containern, fällt dieser Fehler nicht auf und zeigt sich erst in Produktion. - Parsen von Zeichenketten:
new Date('2024-07-15T14:30:00')ohne Zeitzonenangabe wird als lokale Zeit gelesen. Ein reines Datum wie'2024-07-15'wird dagegen als UTC gelesen. Für eindeutige Ergebnisse sollte man immerZoder einen Offset angeben oderDate.UTC()verwenden. - Ungültige Daten: Bei einem ungültigen Datum ist der Rückgabewert
NaN. Vor dem Formatieren sollte man ihn deshalb mitNumber.isNaN()prüfen. - Keine Sommerzeit: UTC kennt keine Sommerzeit. Das Ergebnis springt deshalb nie um eine Stunde, und die Methode eignet sich gut für Berechnungen über Zeitumstellungen hinweg.
- Kompatibilität: Die Methode wird von allen Browsern und von Node.js unterstützt. Für Zeitzonen mit Namen, zum Beispiel
Europe/Berlin, eignen sichIntl.DateTimeFormatoder künftig dieTemporal-API.