KDOC 553: Dateはわずかな違いでタイムゾーンが変わる
この文書のステータス
- 作成
- 2026-03-15 貴島
- レビュー
- 2026-04-19 貴島
概要
JavaScriptで、 Date オブジェクトのタイムゾーンがコンストラクタの日時フォーマットによって変わるのにハマった。有名な落とし穴のようである。
// どちらもタイムゾーンオフセットがない。日時の有無の違い
console.log(new Date('2026-06-01')) // UTC -> UTC
console.log(new Date('2026-06-01T00:00:00')) // local timezone(Asia/Tokyo) -> UTC
2026-06-01T00:00:00.000Z
2026-05-31T15:00:00.000Z
undefined
仕様を見る。
タイムゾーンオフセットがない場合、日付のみの形式は UTC 時刻として解釈され、日時形式はローカル時刻として解釈されます。 Date - JavaScript | MDN
関連
抽象。
- 入力の書き方のわずかな違いで、暗黙の基準が変わる
関連。
- 類推: Dateオブジェクトまわりで、同じようなわかりにくい仕様はあるだろうか
- 類似: KDOC 494: 日時に関する統計ではタイムゾーンが必要になる。日時の暗黙の基準であるタイムゾーンに気をつける場面