Die Methode Date.prototype.getUTCDate() gibt den Tag des Monats eines Date-Objekts gemäß der koordinierten Weltzeit (UTC) zurück. Sie ist das zeitzonenunabhängige Gegenstück zu getDate() und liefert wie diese eine Ganzzahl zwischen 1 und 31. UTC-basierte Methoden sind unverzichtbar in Server-Code, in serialisierten APIs und überall dort, wo eine konsistente Zeitbasis unabhängig von der Systemzeitzone benötigt wird – etwa in Logging-Systemen, in verteilten Anwendungen oder bei der Speicherung von Zeitstempeln in einer Datenbank.
Funktionsweise
Im Unterschied zu getDate() ignoriert getUTCDate() die lokale Zeitzone. Das ist besonders relevant, wenn ein Zeitpunkt in der lokalen Zone bereits einen anderen Kalendertag hat als in UTC. In MEZ (UTC+1) etwa ist es bereits der 2. Mai, während in UTC noch der 1. Mai 23:00 gilt – getDate() und getUTCDate() liefern dann unterschiedliche Werte.
Diese Differenz tritt typischerweise rund um Mitternacht auf und ist ein häufiger Bug-Magnet bei Anwendungen, die Datumsgrenzen prüfen.
Syntax
date.getUTCDate()Die Methode erwartet keine Parameter.
Rückgabewert
Eine Ganzzahl zwischen 1 und 31, die den Tag des Monats in UTC repräsentiert. Bei einem ungültigen Datum wird NaN zurückgegeben.
Beispiele
UTC-Tag auslesen
const date = new Date("2026-05-01T23:30:00Z");
console.log(date.getUTCDate());1Unterschied zwischen lokaler Zeit und UTC
Bei einem Zeitpunkt nahe Mitternacht in einer westlichen Zeitzone kann der UTC-Tag bereits ein anderer sein als der lokale.
// 30. April 22:00 Uhr Eastern Time (UTC-04)
const date = new Date("2026-04-30T22:00:00-04:00");
console.log(date.getUTCDate());1In UTC ist es bereits der 1. Mai 02:00 Uhr.
Stabile Tagesausgabe für Logs
Logs werden idealerweise in UTC geschrieben, damit Einträge zwischen Servern in unterschiedlichen Zeitzonen vergleichbar bleiben.
function utcDateString(date) {
const dd = String(date.getUTCDate()).padStart(2, "0");
const mm = String(date.getUTCMonth() + 1).padStart(2, "0");
const yyyy = date.getUTCFullYear();
return `${yyyy}-${mm}-${dd}`;
}
console.log(utcDateString(new Date("2026-05-01T23:30:00Z")));2026-05-01Letzten Tag des UTC-Monats berechnen
function letzterTagUTC(jahr, monat) {
return new Date(Date.UTC(jahr, monat + 1, 0)).getUTCDate();
}
console.log(letzterTagUTC(2024, 1)); // Februar 2024 (Schaltjahr)
console.log(letzterTagUTC(2026, 1)); // Februar 2026
console.log(letzterTagUTC(2026, 11)); // Dezember 202629
28
31Hinweise & verwandte Methoden
- Für die zeitzonenabhängige Variante:
Date.prototype.getDate(). - Zum Setzen:
Date.prototype.setUTCDate(). Werte außerhalb von 1–31 führen zu einem automatischen Monatsüberlauf in UTC. - Bei Datumslogik in Backend-Systemen sollte konsequent eine Zeitbasis (typisch: UTC) verwendet werden. Mischformen führen schnell zu schwer reproduzierbaren Bugs an Tageswechseln.
Date.UTC()ist die korrekte Methode, um ein Date-Objekt aus UTC-Komponenten zu erzeugen, ohne Zeitzonenkonvertierung.