Unix 時間を日付に:Unix タイムスタンプを読みやすい時刻に変換

Unix 時間を日付形式に変換する実践ガイド:UTC・ローカルタイムゾーン・ISO 8601・データベースの datetime・読みやすい出力。Unix タイムスタンプから日付、Linux 時間から日付、よくある秒対ミリ秒の誤りを扱います。

Unix 時間を日付に変換するとは

Unix 時間は、1970 年 1 月 1 日 00:00:00 UTC からの経過時間を数える数値です。Unix 時間を日付に変換するとは、その数値を暦日・時刻・タイムゾーン対応の表示に変えることです。タイムスタンプ自体はタイムゾーンに依存せず、UTC かローカル時刻かは、人にどう見せるかにのみ影響します。

手早い変換ルール

まず単位を見分けます。現代の 10 桁の Unix タイムスタンプは通常秒、13 桁は通常ミリ秒です。JavaScript Date はミリ秒を期待し、Linux・Python・PHP・Go・多くのデータベース関数は通常秒で扱います。

  • Unix seconds to JavaScript Date: new Date(seconds * 1000)
  • Unix milliseconds to JavaScript Date: new Date(milliseconds)
  • Linux command: date -u -d @1700000000
  • Python UTC datetime: datetime.fromtimestamp(seconds, tz=timezone.utc)
  • PostgreSQL: SELECT to_timestamp(1700000000)

Unix タイムスタンプ → 日付の例

例は、値が秒・ミリ秒・別の単位のどれかをすばやく確認する最速の方法です。変換後の年が 1970 年付近なら、ミリ秒を期待する API に秒を渡した可能性があります。年が遠い未来なら、秒を期待する API にミリ秒を渡した可能性があります。

  • エポックからの 0 秒 = 1970-01-01 00:00:00 UTC
  • エポックからの 1700000000 秒 = 2023-11-14 22:13:20 UTC
  • エポックからの 1700000000000 ミリ秒 = 2023-11-14 22:13:20 UTC
  • エポックからの -86400 秒 = 1969-12-31 00:00:00 UTC
  • エポックからの 1767225600 秒 = 2026-01-01 00:00:00 UTC

UTC 日付 vs ローカル日付

Unix タイムスタンプは 1 つの正確な瞬間を表します。UTC はログ・API・デバッグに最も安全な基準です。ローカル時刻は UI・カレンダー・レポートに便利です。同じ Unix タイムスタンプでも、特に UTC の深夜付近では、ニューヨーク・ロンドン・上海・東京で異なる暦日として表示されます。

  • サーバーやリージョンをまたいでイベントを比較するときは UTC を使う
  • アプリで日付を表示するときはユーザーの IANA タイムゾーンを使う
  • 機械可読の UTC 出力には Z 付きの ISO 8601 を使う
  • ローカルの暦日が重要なときはタイムゾーンコンバーターを使う

Unix 時間 → 日付の FAQ

Unix 時間を日付に変換するには?
値が秒かミリ秒かを見分け、タイムスタンプ コンバーターか言語の API で変換します。JavaScript では、値を new Date() に渡す前に秒を 1000 倍します。
Linux 時間は Unix 時間と同じ?
通常のタイムスタンプ変換では同じです。Linux 時間は Unix 時間です:1970-01-01 00:00:00 UTC からの秒です。
なぜ私の Unix タイムスタンプが 1970 年に変換される?
たいていは秒のタイムスタンプがミリ秒として扱われたことを意味します。JavaScript Date で変換する前に、10 桁の秒値を 1000 倍してください。
Excel で Unix 時間を日付に変換するには?
Excel には Unix エポックがないため、秒の値を 86400 で割り、1970 年の日付シリアルを足します:=A1/86400 + DATE(1970,1,1)。その後セルを日付として書式設定します。ミリ秒の場合は 86400000 で割ります。