Date.UTC()メソッドとは?「使い方」などをわかりやすく解説!

この記事ではJavaScriptの『Date.UTC()メソッド』について、

  • Date.UTC()メソッドとは
  • Date.UTC()メソッドの構文
  • Date.UTC()メソッドとDateコンストラクタの違い

などを分かりやすく説明するように心掛けています。ご参考になれば幸いです。

Date.UTC()メソッドとは

Date.UTC()メソッドは、「協定世界時(UTC)の1970年1月1日 00:00:00」から「Date.UTC()メソッドの引数で指定した年、月、日、時、分、秒、ミリ秒の値によって決まる日時」までの経過時間をミリ秒で返すメソッドです。

以下にサンプルコードとその出力結果を示しています。

console.log(Date.UTC(1970, 0, 1, 0, 0, 1, 0));
// ログ出力
// 1000

後ほど詳しく説明しますが、Date.UTC(1970, 0, 1, 0, 0, 1, 0)は「1970年1月1日 00:00:01」の日時となります。この日時は協定世界時(UTC)と比較すると1秒(1000ミリ秒)進んでいるので、出力結果が1000になっています。

補足

  • 協定世界時(UTC)に対して日本標準時は9時間進んでいます。
  • Date.UTC()メソッドは、異なるタイムゾーンにいるユーザー間で時間を同期する場合など、日付をグローバルな基準(UTC)で扱う必要がある場合に便利です。

Date.UTC()メソッドの構文

Date.UTC()メソッドの構文を以下に示します。

Date.UTC()メソッドの構文

Date.UTC(year, month[, day[, hour[, minute[, second[, millisecond]]]]])

Date.UTC()は、年、月、日、時、分、秒、ミリ秒という7つの引数を取ります。年のみ必須であり他は省略可能です。注意点としては、月は0から始まるので、1月は0、2月は1、となります。

引数

  • year
    • 「年」を1900年以降の整数値で指定します。
    • 0から99までの値を指定した場合、1900 + yearに変換されます。例えば、95を指定した場合、1995年に変換されます。
  • month(省略可能)
    • 「月」を0(1月)から11(12月)までの整数値で指定します。
    • 0から始まるので注意してください。0が1月を表します。
    • ES2016ではmonthの指定が必須でしたが、ES2017以降では必須ではなくなり、省略可能になりました。
    • 省略した場合の規定値は0(1月)になります。
  • day(省略可能)
    • 「日」を1(1日)から31(31日)までの整数値で指定します。
    • 省略した場合の規定値は1(1日)になります。
  • hour(省略可能)
    • 「時」を0(0時)から23(23時)までの整数値で指定します。
    • 省略した場合の規定値は0(0時)になります。
  • minute(省略可能)
    • 「分」を0(0分)から59(59分)までの整数値で指定します。
    • 省略した場合の規定値は0(0分)になります。
  • second(省略可能)
    • 「秒」を0(0秒)から59(59秒)までの整数値で指定します。
    • 省略した場合の規定値は0(0秒)になります。
  • millisecond(省略可能)
    • 「ミリ秒」を0(0ミリ秒)から999(999ミリ秒)までの整数値で指定します。
    • 省略した場合の規定値は0(0ミリ秒)になります。

返り値(戻り値)

  • 「協定世界時(UTC)の1970年1月1日 00:00:00」から指定された日付までのミリ秒数を返します。

補足

  • 引数に範囲外のパラメータを指定した場合、Date.UTC()メソッドは指定した値を受け入れるように他の引数を更新します。例えば、monthに15を指定した場合、yearが1つ増加し、monthには3が使用されます。

Date.UTC()メソッドとDateコンストラクタの違い

Date.UTC()メソッドとDateコンストラクタの主な違いを以下に示します。

  • Date.UTC()メソッドは協定世界時(UTC)を用いますが、Dateコンストラクタは地方時を用います。
  • Date.UTC()メソッドはDateオブジェクトを生成せず、指定された日付と時刻に対応するUTCのミリ秒を返します。一方、Dateコンストラクタは新しい Date オブジェクトを生成します。Date オブジェクトは地方時に基づいた日付と時刻を表します。
// 2023年1月15日12時30分00秒のUTC時間のミリ秒
const utcMilliseconds = Date.UTC(2023, 0, 1, 12, 0, 0, 0);
// この値は、「協定世界時(UTC)の1970年1月1日 00:00:00」からのミリ秒数を表します
console.log(utcMilliseconds); // 1672574400000

// Dateオブジェクトを生成しています。
const localDate = new Date(2023, 0, 1, 12, 0, 0, 0);
// この値はローカルタイムゾーンの日付と時刻を表します
console.log(localDate); // 2023-01-01T03:00:00.000Z

本記事のまとめ

この記事では『Date.UTC()メソッド』について、以下の内容を説明しました。

  • Date.UTC()メソッドとは
  • Date.UTC()メソッドの構文
  • Date.UTC()メソッドとDateコンストラクタの違い

お読み頂きありがとうございました。