この記事では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
コンストラクタの違い
お読み頂きありがとうございました。