この記事の目次 開く・閉じる

今回の仕上がり
日本時間2026年10月29日0時30分をtoISOStringで表示すると、2026-10-28T15:30:00.000Zになります。同じ瞬間をUTCで表したためです。先頭10文字だけを取り出すと10月28日になり、日本時間の「今日」とずれます。
自作例では、入力日時、ISO表現、その先頭10文字、Asia/Tokyoでの表示を並べました。日本時間の日付を明示した表示は、確認した3例とも2026/10/29でした。
日付境界を比較する
- 「確認する日時」で0時30分の例を選びます。
- ISO先頭10文字が2026-10-28、日本時間の日付が2026/10/29であることを確認します。
- 9時の例ではUTCが0時になり、両方の日付が10月29日になります。
- 23時59分の例も選び、同じ比較を確かめます。
日本時間の表示にはIntl.DateTimeFormatを使い、timeZoneをAsia/Tokyoに指定しています。表示用の区切りや順番はロケールにも依存します。保存用のキーを作る用途なら、表示文字列をそのまま前提にせず、必要な形式を別途決めてください。
時刻と日付の扱い
toISOStringはUTC表現を返します。日本時間で「昨日まで」を集計したい場面では、UTCの日付を切り出すだけでは条件が合いません。時刻を保存する形式と、画面表示・日次集計の時間帯を分けて考えます。
今回の入力にはすべて+09:00を明記しました。時間帯のない文字列や利用者が自由入力する日付、夏時間のある地域は検証していません。固定した3例の確認結果を、全世界の日時処理の保証には使えません。
根拠はtoISOStringの説明とIntl.DateTimeFormatの説明です。このサンプルは外部への送信や日時データの保存を行いません。コードとZIPはCC0で利用できます。
操作できる作例
確認日:2026年10月29日。PCブラウザとスマホ幅で確認。スマホ実機・読み上げ・全ブラウザは未確認です。