JavaScriptでUTC(協定世界時)の日付を生成する際に便利な`Date.UTC()`関数について、基本的な使い方から実践的な例まで詳しく解説します。

Date.UTC()関数とは

`Date.UTC()`は、UTCタイムスタンプをミリ秒単位で返すJavaScriptの静的メソッドです。ローカルタイムゾーンに依存せず、世界標準時での日時を扱うことができます。

基本的な構文

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

パラメータの説明

  • year(必須): 年(4桁の数値)
  • month(必須): 月(0-11の数値、0は1月)
  • day(任意): 日(1-31の数値、デフォルトは1)
  • hour(任意): 時(0-23の数値、デフォルトは0)
  • minute(任意): 分(0-59の数値、デフォルトは0)
  • second(任意): 秒(0-59の数値、デフォルトは0)
  • millisecond(任意): ミリ秒(0-999の数値、デフォルトは0)

使用例

基本的な使用方法

// 2024年1月1日のUTCタイムスタンプを取得
const timestamp = Date.UTC(2024, 0, 1);
console.log(timestamp); // 1704067200000

// タイムスタンプからDate オブジェクトを生成
const date = new Date(timestamp);
console.log(date.toUTCString()); // "Mon, 01 Jan 2024 00:00:00 GMT"

時分秒を指定する場合

// 2024年1月1日 12:30:45 UTC
const timestamp = Date.UTC(2024, 0, 1, 12, 30, 45);
const date = new Date(timestamp);
console.log(date.toUTCString()); // "Mon, 01 Jan 2024 12:30:45 GMT"

実践的な活用例

タイムゾーンをまたぐ予約システムでの使用

function createBookingTime(year, month, day, hour) {
    const bookingTimestamp = Date.UTC(year, month - 1, day, hour);
    return new Date(bookingTimestamp);
}

const booking = createBookingTime(2024, 1, 15, 14);
console.log(booking.toUTCString());

日付の比較

const date1 = Date.UTC(2024, 0, 1);
const date2 = Date.UTC(2024, 0, 2);

if (date1 < date2) {
    console.log('date1は date2より前の日付です');
}

注意点

1. monthパラメータは0から始まります(0=1月、11=12月)

2. yearパラメータは4桁で指定することを推奨

3. 戻り値はミリ秒単位のタイムスタンプ

まとめ

`Date.UTC()`は、グローバルなアプリケーション開発において、タイムゾーンの違いによる問題を解決するための重要な関数です。特に以下の場面で活用できます:

  • 国際的なイベントのスケジュール管理
  • タイムゾーンをまたぐ予約システム
  • グローバルなログ記録
  • 日時の正確な比較

正しいパラメータの指定と、月のインデックスが0から始まることに注意すれば、簡単にUTC日時を扱うことができます。