JavaScript

In the JavaScript Date object, the getFullYear() method is recommended over the older getYear() method and returns the Gregorian year as an integer based on the local time represented by the object.

getFullYear() [method]

 JavaScriptの Dateオブジェクトには、日付や時刻に関するさまざまなメソッドが用意されています。その中でも getFullYear()は、オブジェクトが表す日付の「年(西暦)」を取得するためのメソッドです。

概要

メソッド名
dateObject.getFullYear()
戻り値
4桁以上の数値の年(例: 1999, 2024, 9999, 10000 など)
返却される年の基準
オブジェクトに格納されている日時(ローカルタイム)における西暦

 基本的には「日付の年だけを数値で取得したい」というときに使用します。返ってくる年は4桁が一般的ですが、10000年以降や1000年未満の年についても、そのまま数値で返される仕様です。

使用例

 たとえば、現在の年を取得する場合は次のように書きます。

JavaScript

const now = new Date();            // 現在の日付を取得
const currentYear = now.getFullYear();
console.log(currentYear);          // たとえば 2024 と出力される

 具体的な日付を指定したい場合は、以下のようにすることができます。

JavaScript

// 2024年12月21日 12:00:00 を表すDateオブジェクト
const specificDate = new Date(2024, 11, 21, 12, 0, 0); 
// ※ 月は0〜11で指定するため 11 が12月に対応
console.log(specificDate.getFullYear()); // 2024

getYear()との違い

 JavaScriptには古くから getYear()というメソッドが存在しました。しかし、getYear()には以下の問題があり、現在は推奨されていません。

 このような経緯から、正確な年を取得できる getFullYear()が標準的に使われるようになりました。モダンな JavaScriptコードを書く場合は、getFullYear()を使用するのが一般的です。

UTC時刻を扱う場合

 同じく年を取得するメソッドとして、UTC時刻(世界協定時刻)基準の年を返す getUTCFullYear()が用意されています。

JavaScript

const now = new Date();
console.log(now.getFullYear());       // ローカルタイムの年
console.log(now.getUTCFullYear());    // UTC(協定世界時)基準の年

 ローカルタイムでは日付の変わり目が国や地域によって異なるため、国際的な取り扱いをしたい場面や、タイムゾーンを揃えて処理したい場合などは getUTCFullYear()を使うことがあります。

注意点と補足

タイムゾーンの影響
getFullYear()は、実行環境のローカルタイムに応じた値を返します。そのため、同じ瞬間でも実行環境のタイムゾーンが異なると、日付の境界付近では年が変わってしまう場合があります。グローバルな日時計算が必要な場合は、UTCベースのメソッドを使用するか、タイムゾーンを明示的に管理するライブラリ(例: Moment.jsやDay.jsなど)を導入することを検討してください。
4桁を超える年の扱い
JavaScriptのDateオブジェクトは、IEEE 754 64ビット浮動小数点数を内部的に使っているため、理論上は±約100,000,000年まで取り扱うことが可能です。ただし、実際にはブラウザの実装や互換性の問題があり、あまり遠い年号を使用すると正しく計算ができない場合があります。用途に応じて注意が必要です。
古いブラウザでの互換性
getFullYear()はほとんどのモダンブラウザでサポートされています。古いブラウザ(特に第4世代など)をサポートする必要がある特別なケースを除き、一般的には問題なく使用できます。