Die Methode Date.prototype.getUTCDay() gibt den Wochentag eines Date-Objekts in der koordinierten Weltzeit (UTC) zurück. Wie bei getDay() ist die Nummerierung 0-basiert und beginnt mit Sonntag (0). Die UTC-Variante eignet sich überall dort, wo der Wochentag konsistent über Zeitzonen hinweg ermittelt werden soll – beispielsweise in einem Server-Cron, der montags eine Aufgabe ausführen soll, ohne dass die Server-Zeitzone das Verhalten beeinflusst.
Funktionsweise
getUTCDay() ignoriert die lokale Zeitzone des ausführenden Systems. Die Zuordnung der Werte ist identisch zu getDay():
| Wert | Wochentag (DE) | Wochentag (EN) |
|---|---|---|
| 0 | Sonntag | Sunday |
| 1 | Montag | Monday |
| 2 | Dienstag | Tuesday |
| 3 | Mittwoch | Wednesday |
| 4 | Donnerstag | Thursday |
| 5 | Freitag | Friday |
| 6 | Samstag | Saturday |
Bei Zeitpunkten nahe Mitternacht kann der UTC-Wochentag deshalb vom lokalen abweichen.
Syntax
date.getUTCDay()Die Methode erwartet keine Parameter.
Rückgabewert
Eine Ganzzahl zwischen 0 (Sonntag) und 6 (Samstag), die den Wochentag in UTC repräsentiert. Bei einem ungültigen Datum wird NaN zurückgegeben.
Beispiele
UTC-Wochentag auslesen
const date = new Date("2026-05-01T12:00:00Z");
console.log(date.getUTCDay());5Der 1. Mai 2026 ist in UTC ein Freitag (5).
Wochenende in UTC bestimmen
function istWochenendeUTC(date) {
const day = date.getUTCDay();
return day === 0 || day === 6;
}
console.log(istWochenendeUTC(new Date("2026-05-02T10:00:00Z"))); // Samstag
console.log(istWochenendeUTC(new Date("2026-05-04T10:00:00Z"))); // Montagtrue
falseUnterschied zwischen getDay() und getUTCDay()
In bestimmten Konstellationen liefern beide Methoden unterschiedliche Werte – etwa wenn ein Zeitpunkt in einer westlichen Zeitzone nahe Mitternacht liegt, sodass UTC bereits den nächsten Tag schreibt.
// Freitag 23:00 Uhr in New York (UTC-4)
const date = new Date("2026-05-01T23:00:00-04:00");
console.log(`UTC: ${date.getUTCDay()}`);UTC: 6In UTC ist es bereits Samstag (3:00 Uhr).
Wöchentlicher Cron-Job
Server, die in unterschiedlichen Zeitzonen laufen, benötigen oft eine UTC-basierte Wochentagslogik, um konsistent die richtige Aufgabe auszuführen.
function istMontagUTC(date) {
return date.getUTCDay() === 1;
}
console.log(istMontagUTC(new Date("2026-05-04T08:00:00Z")));
console.log(istMontagUTC(new Date("2026-05-05T08:00:00Z")));true
falseHinweise & verwandte Methoden
- Für die zeitzonenabhängige Variante:
Date.prototype.getDay(). - Es gibt keinen Setter
setUTCDay()– um auf einen bestimmten Wochentag in UTC zu navigieren, muss mitsetUTCDate()und der Differenz zum aktuellen Wochentag gearbeitet werden. - Für lokalisierte Wochentagsausgaben (z. B. „Freitag” auf Deutsch):
Intl.DateTimeFormatmit{ weekday: "long", timeZone: "UTC" }. - Auch hier gilt die Sonntag-zuerst-Konvention. Für ISO-8601 (Montag = 1, Sonntag = 7) ist eine manuelle Umrechnung notwendig.