Signatur
Beschreibung
Die Methode getFullYear() liefert das Jahr eines Date-Objekts als vollständige Jahreszahl, also z. B. 2024 statt 124 oder 24. Die Berechnung erfolgt in der lokalen Zeitzone der Laufzeitumgebung (Browser bzw. Betriebssystem oder in Node.js die Umgebungsvariable TZ).
Typische Einsatzgebiete sind die Anzeige des aktuellen Jahres (etwa im Copyright-Hinweis einer Webseite), Altersberechnungen, Schaltjahrprüfungen oder das Gruppieren von Datensätzen nach Jahr. Für Zeitberechnungen, die unabhängig vom Standort des Nutzers sein sollen, ist stattdessen getUTCFullYear() die richtige Wahl.
getFullYear() ist der moderne Ersatz für die veraltete Methode getYear(), die je nach Implementierung zweistellige oder um 1900 verschobene Werte zurückgibt und nicht mehr verwendet werden sollte.
Rückgabewert
-44 oder 800). Ist das Datum ungültig (Invalid Date), wird NaN zurückgegeben.Beispiele
Aktuelles Jahr im Copyright-Hinweis
const jahr = new Date().getFullYear();
const footer = `© 2015–${jahr} programmierung.net`;
console.log(footer);
Alter aus einem Geburtsdatum berechnen
const berechneAlter = (geburtsdatum, stichtag = new Date()) => {
let alter = stichtag.getFullYear() - geburtsdatum.getFullYear();
// Geburtstag in diesem Jahr noch nicht erreicht?
const nochNichtGehabt =
stichtag.getMonth() < geburtsdatum.getMonth() ||
(stichtag.getMonth() === geburtsdatum.getMonth() &&
stichtag.getDate() < geburtsdatum.getDate());
if (nochNichtGehabt) alter--;
return alter;
};
console.log(berechneAlter(new Date(1990, 5, 15), new Date(2024, 2, 1)));
Schaltjahr prüfen und Datensätze nach Jahr gruppieren
const istSchaltjahr = (datum) => {
const j = datum.getFullYear();
return (j % 4 === 0 && j % 100 !== 0) || j % 400 === 0;
};
console.log(istSchaltjahr(new Date(2024, 0, 1))); // true
console.log(istSchaltjahr(new Date(1900, 0, 1))); // false
const bestellungen = [
{ id: 1, datum: new Date(2023, 10, 3) },
{ id: 2, datum: new Date(2024, 1, 29) },
{ id: 3, datum: new Date(2024, 6, 12) }
];
const proJahr = Object.groupBy(bestellungen, (b) => b.datum.getFullYear());
console.log(Object.keys(proJahr));
Lokale Zeit vs. UTC und ungültige Daten
// Silvester 23:30 Uhr UTC – in Berlin (UTC+1) bereits Neujahr
const d = new Date('2023-12-31T23:30:00Z');
console.log(d.getFullYear()); // in Europe/Berlin: 2024
console.log(d.getUTCFullYear()); // 2023
const kaputt = new Date('kein Datum');
console.log(kaputt.getFullYear());
// Wichtig · Fallstricke
- Zeitzone beachten: Das Ergebnis hängt von der lokalen Zeitzone ab. Rund um den Jahreswechsel kann
getFullYear()für denselben Zeitpunkt je nach Standort unterschiedliche Jahre liefern. Für serverseitige oder standortunabhängige LogikgetUTCFullYear()verwenden. - Nicht
getYear()verwenden: Die veraltete Methode liefert z. B.124für 2024 (Jahr minus 1900) und ist aus Kompatibilitätsgründen nur noch in Anhang B der Spezifikation enthalten. - Ungültige Daten: Bei
Invalid Dateist das ErgebnisNaN– vor der Weiterverarbeitung ggf. mitNumber.isNaN()prüfen. - Zweistellige Jahre im Konstruktor:
new Date(24, 0, 1)ergibt das Jahr1924, nicht 2024. Zum Setzen von Jahren 0–99setFullYear()verwenden. Object.groupBy()im Beispiel ist ES2024; in älteren Umgebungen aufreduce()ausweichen.getFullYear()selbst wird von allen Browsern und Node.js unterstützt.