Date.UTC()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Date.UTC() は静的メソッドで、 Date コンストラクターと同様に日付と時刻の要素を表す引数を受け入れますが、それらを UTC として扱います。 1970 年 1 月 1 日 00:00:00 UTC からのミリ秒数を返します。

試してみましょう

const utcDate1 = new Date(Date.UTC(96, 1, 2, 3, 4, 5));
const utcDate2 = new Date(Date.UTC(0, 0, 0, 0, 0, 0));

console.log(utcDate1.toUTCString());
// 予想される結果: "Fri, 02 Feb 1996 03:04:05 GMT"

console.log(utcDate2.toUTCString());
// 予想される結果: "Sun, 31 Dec 1899 00:00:00 GMT"

構文

Date.UTC(year)
Date.UTC(year, monthIndex)
Date.UTC(year, monthIndex, day)
Date.UTC(year, monthIndex, day, hours)
Date.UTC(year, monthIndex, day, hours, minutes)
Date.UTC(year, monthIndex, day, hours, minutes, seconds)
Date.UTC(year, monthIndex, day, hours, minutes, seconds, milliseconds)

引数

year

整数値で、年を表します。 0 から 99 までの値は 1900 から 1999 までに対応付けられます。それ以外の値はすべて、実際の年を表します。を参照してください。

monthIndex 省略可

月を表す整数で、 0 (1 月) から始まり、 11 (12 月) までです。既定値は 0 です。

day 省略可

「日」を表す 1 から 31 までの整数値。既定値は 1 です。

hours 省略可

「時」を表す 0 から 23 までの整数値。既定値は 0 です。

minutes 省略可

「分」を表す 0 から 59 までの整数値。既定値は 0 です。

seconds 省略可

「秒」を表す 0 から 59 までの整数値。既定値は 0 です。

milliseconds 省略可

「ミリ秒」を表す 0 から 999 までの整数値。既定値は 0 です。

返値

指定された日時のタイムスタンプを表す数値を返します。日時が無効な場合は NaN を返します。

解説

0 から 99 までの年は、 20 世紀の年 (1900 + year) に変換されます。例えば、 95 は 1995 年に変換されます。

この UTC() メソッドは Date() コンストラクターと 3 つの点で異なります。

  1. Date.UTC() は地方時ではなく、協定世界時を用います。
  2. Date.UTC()Date オブジェクトを生成せず、時刻値を整数で返します。
  3. 単一の数値を渡すと、 Date.UTC() はそれをタイムスタンプではなく年として解釈します。

引数が日時に期待される範囲を超えている場合、 UTC() メソッドは指定した値を受け入れるよう他の引数を更新します。例えば 15monthIndex に使用された場合、年が 1 つ増加し (year + 1)、月には 3 が使われます。

UTC()Date の静的メソッドなので、 Date インスタンスのメソッドとしてではなく、常に Date.UTC() のように使用してください。

Date.UTC() の使用

以下の文では、地方時の代わりに UTC を用いて Date オブジェクトを生成します。

const utcDate = new Date(Date.UTC(2018, 11, 1, 0, 0, 0));

Date.UTC() の引数が 1 つであった場合の動作

Date.UTC() に 1 つの引数を渡すと、実装が Date() コンストラクターとの整合性を保つため、単一の引数を年として解釈せず、動作に不整合が生じていました。実装は、 monthIndex が省略されたときに NaN に強制変換するのではなく、0 として扱うことになりました。

Date.UTC(2017); // 1483228800000

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-date.utc

ブラウザーの互換性

関連情報