午前0時の間でUTCオフセットが変わる
NISTによる2026年の米国の夏時間切り替え日は3月8日と11月1日です。America/New_Yorkでは3月8日午前0時(-05:00)から9日午前0時(-04:00)までが23時間、11月1日午前0時(-04:00)から2日午前0時(-05:00)までが25時間です。どちらも暦の日付差は1日です。この例は当地の1時間の切り替えに限ります。
経過時間の計算ではオフセットを保持する
以下のJavaScriptは明示したオフセットで各時点を解釈し、ミリ秒の差を3,600,000で割ります。結果は23と25です。オフセットを削除したり、経過時間を24で割って丸めた値を日付差の代わりにしたりしないでください。固定オフセットだけでは地域の将来の切り替え規則は表せません。
Moyoutilの日付計算機はYYYY-MM-DDをUTCの午前0時として扱います。終了日を含める設定をオフにすると両方とも1です。地域別の経過時間は計算しません。以下は別のJavaScript例です。
const hours = (start, end) =>
(Date.parse(end) - Date.parse(start)) / 3600000;
console.log(hours(
'2026-03-08T00:00:00-05:00',
'2026-03-09T00:00:00-04:00')); // 23
console.log(hours(
'2026-11-01T00:00:00-04:00',
'2026-11-02T00:00:00-05:00')); // 25よくある質問
夏時間の地域では毎日が23時間か25時間ですか?
いいえ。これはニューヨークの2つの切り替え日の例です。他の日付や地域には当てはめないでください。実際の経過時間には対象地域と各時点の有効なオフセットが必要です。