Die Methode Date.prototype.setUTCFullYear() setzt das vierstellige Jahr eines Date-Objekts in der koordinierten Weltzeit (UTC). Optional können auch Monat und Tag im selben Aufruf angepasst werden – das macht sie zur kompaktesten Möglichkeit, ein Date-Objekt auf ein bestimmtes UTC-Kalenderdatum zu schieben. Sie ist die zeitzonenunabhängige Variante zu setFullYear() und gehört in jeden serverseitigen Code, in dem konsistente Ergebnisse über Zeitzonen hinweg gefordert sind.
Funktionsweise
Im Unterschied zu setFullYear() orientiert sich setUTCFullYear() an UTC und ist damit für Logik geeignet, die zeitzonenunabhängig konsistente Ergebnisse benötigt. Werte außerhalb gültiger Bereiche bei monthValue (0–11) oder dayValue (1–31) werden automatisch normalisiert.
Wie alle Setter mutiert die Methode das Original. Eine vorherige Kopie via new Date(original) schützt das Quell-Objekt.
Syntax
date.setUTCFullYear(yearValue)
date.setUTCFullYear(yearValue, monthValue)
date.setUTCFullYear(yearValue, monthValue, dayValue)yearValue Eine Ganzzahl, die das neue Jahr angibt (vierstellig).
monthValue (Optional) Eine Ganzzahl von 0 (Januar) bis 11 (Dezember).
dayValue (Optional) Eine Ganzzahl von 1 bis 31, die den Tag des Monats angibt.
Rückgabewert
Die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC nach der Aktualisierung.
Beispiele
Jahr in UTC setzen
const date = new Date("2026-05-01T12:00:00Z");
date.setUTCFullYear(2030);
console.log(date.toISOString().slice(0, 10));2030-05-01Vollständiges Datum in UTC
const date = new Date();
date.setUTCFullYear(2026, 11, 24);
console.log(date.toISOString().slice(0, 10));2026-12-24Jahresanfang in UTC
function jahresanfangUTC(jahr) {
const result = new Date();
result.setUTCFullYear(jahr, 0, 1);
result.setUTCHours(0, 0, 0, 0);
return result;
}
console.log(jahresanfangUTC(2026).toISOString());2026-01-01T00:00:00.000ZJahresende in UTC
function jahresendeUTC(jahr) {
const result = new Date();
result.setUTCFullYear(jahr, 11, 31);
result.setUTCHours(23, 59, 59, 999);
return result;
}
console.log(jahresendeUTC(2026).toISOString());2026-12-31T23:59:59.999ZHinweise & verwandte Methoden
- Für die lokale Variante:
Date.prototype.setFullYear(). - In Server-Anwendungen sollte konsequent
setUTCFullYear()verwendet werden, um Zeitzonen-Bugs zu vermeiden. - Beim 29. Februar in Schaltjahren ist Vorsicht geboten – ein Wechsel in ein Nicht-Schaltjahr verschiebt das Datum auf den 1. März.
- Für das Erzeugen eines komplett neuen UTC-Date-Objekts ist
new Date(Date.UTC(yyyy, mm, dd))oft die übersichtlichere Variante.