App Museum
English

UNIXタイムスタンプとタイムゾーンの関係

タイムスタンプが表す瞬間とUTC・ローカル時刻の表示を分け、日付境界やサマータイムのずれを確認する方法を解説します。

公開日: 2026-08-10 · 更新日: 2026-08-10

タイムスタンプと表示時刻を分ける

UNIXタイムスタンプは、ある一つの瞬間を基準時刻からの経過量で表します。値そのものに「日本時間」や「米国時間」という表示用タイムゾーンが埋め込まれているわけではありません。同じ値をUTCで表示するか、端末のローカルタイムゾーンで表示するかによって、時計と日付が変わります。

たとえば秒単位の 1704067200 は次の同じ瞬間です。

UTC:                 2024-01-01 00:00:00
Asia/Tokyo (+09:00): 2024-01-01 09:00:00
Los Angeles (-08:00): 2023-12-31 16:00:00

ロサンゼルスでは日付も前年になりますが、タイムスタンプが変わったわけではありません。表示に適用したUTCオフセットが異なるだけです。

環境によって表示が変わる理由

JavaScriptの Date などは、同じ内部の時刻値に対してUTC用とローカル用の表示メソッドを持ちます。ローカル表示は、ブラウザやOSが選んだシステムタイムゾーンと、その環境が持つタイムゾーンデータを使います。そのため、端末設定が異なる利用者は別の表示を目にします。

ログやAPIで時刻を比較するときは、2024-01-01 09:00 のようなタイムゾーンなしの文字列だけを残さないでください。UTCの Z+09:00 のようなオフセット、または Asia/Tokyo のようなタイムゾーン識別子を用途に応じて併記します。

日付変更境界とサマータイム

UTCの深夜付近では、UTCとローカル時刻の日付が一致しない地域があります。「1月1日のデータ」を抽出する場合、UTC日付なのか利用者のローカル日付なのかを先に決めないと、集計範囲がずれます。

サマータイムを採用する地域ではUTCオフセットが季節によって変わります。たとえば America/Los_Angeles の2024年春の切り替えでは、時計が 01:59:59 から 03:00:00 へ進み、02 時台が存在しません。

1710064799 seconds -> 2024-03-10 09:59:59 UTC
                   -> 2024-03-10 01:59:59 America/Los_Angeles

1710064800 seconds -> 2024-03-10 10:00:00 UTC
                   -> 2024-03-10 03:00:00 America/Los_Angeles

逆に秋の切り替えでは同じローカル時刻が二度現れることがあります。固定の -08:00 だけを一年中使うと、実際の地域ルールと一致しない期間が生じます。将来のルールは政治的決定で更新されるため、タイムゾーンデータの版が異なる環境では結果がずれる可能性もあります。

入力と表示結果の確認手順

  1. 入力値の単位が秒かミリ秒かを確認します。
  2. UNIXタイムスタンプ変換アプリで、まずUTC表示を確認します。
  3. 同じ値のローカル表示を確認し、端末のタイムゾーン設定を記録します。
  4. 期待値に日付だけがある場合、その日付がUTC基準か地域基準かを確認します。
  5. サマータイム切り替え付近なら、直前と直後の値も変換します。
  6. 不具合報告には入力値、単位、UTC結果、タイムゾーン識別子、ローカル結果を一緒に残します。

App MuseumのUNIXタイムスタンプ変換アプリは、同じ入力のUTCとブラウザのローカル時刻を並べて確認できます。値の誤りと表示タイムゾーンの違いを切り分けるために使ってください。

参考資料

変換unix-timestamptimezoneutcdst
  • Unixタイムスタンプと日時を相互変換。秒・ミリ秒に対応し、UTCとローカル時刻の両方を表示します。
    ユーティリティ変換timetimestampdateconverterdeveloper