発売開始時刻をJSTに直すとき、PDTとPSTを取り違えないためのメモ(Intl.DateTimeFormat)
海外の製品発表では「予約開始は太平洋時間の午前5時」のように書かれることが多いです。これを日本時間に直すとき、夏時間(PDT, UTC-7)か標準時間(PST, UTC-8)かを間違えると1時間ずれます。最近、iPhone Duoの予約開始時刻(2026年10月16日 午前5時 太平洋時間)を変換したときのメモです。
NG: オフセットを決め打ちする
// PST(-08:00)と決め打ちすると1時間ずれる
const wrong = new Date('2026-10-16T05:00:00-08:00');
// → 2026/10/16 22:00 (JST) ※実際は21:00
2026年の米国の夏時間は11月1日まで続くので、10月16日はPDT(UTC-7)です。
OK: 正しいオフセットで作ってから、表示側でタイムゾーンを指定
const start = new Date('2026-10-16T05:00:00-07:00');
const fmt = (timeZone) =>
new Intl.DateTimeFormat('ja-JP', { timeZone, dateStyle: 'medium', timeStyle: 'short' })
.format(start);
fmt('America/Los_Angeles'); // 2026/10/16 5:00
fmt('Europe/London'); // 2026/10/16 13:00
fmt('Asia/Hong_Kong'); // 2026/10/16 20:00
fmt('Asia/Tokyo'); // 2026/10/16 21:00
Node.js 20で確認しました。なお、dateStyle と timeZoneName は同時に指定できず、TypeError になります。タイムゾーン名も出したい場合は hour や minute を個別に指定してください。
確認のコツ
- 元の発表がUTCや現地時刻を併記していれば、それと突き合わせる(今回は英国13:00、香港20:00と一致)。
- 欧州の夏時間は10月最終日曜、米国は11月第1日曜に終わるので、10月下旬〜11月初旬は特に注意。
- 11月6日の午前5時(PST)なら、日本時間は22:00になります。
元の時刻は、iPhone Duoのニュースと解説(出典つき)の予約開始の記事で確認しました。Appleとは無関係の個人サイトです。
※この記事はAppleとは無関係です。