KDOC 553: Dateはわずかな違いでタイムゾーンが変わる

この文書のステータス

  • 作成
    • 2026-03-15 貴島
  • レビュー
    • <署名>

概要

JavaScript上で、Dateオブジェクトのタイムゾーンがコンストラクタの日時フォーマットによって変わるのにハマった。有名な落とし穴のようである。

// どちらもタイムゾーンオフセットがない
console.log(new Date('2026-06-01')) // UTC -> UTC
console.log(new Date('2026-06-01T00:00:00')) // local timezone(Asia/Tokyo) -> -9 -> UTC
2026-06-01T00:00:00.000Z
2026-05-31T15:00:00.000Z
undefined

仕様を見る。

タイムゾーンオフセットがない場合、日付のみの形式は UTC 時刻として解釈され、日時形式はローカル時刻として解釈されます。 Date - JavaScript | MDN

関連

なし。