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日時を扱うことができます。