メインコンテンツへスキップ
FreeOnlineTools Go
日本語
方法

Unix タイムスタンプを人間が判読できる日付に変換する方法

FreeOnlineTools Team 著 · 2026-08-28を更新しました

簡単な回答

Unix タイムスタンプ = 1970-01-01 00:00:00 UTC からの秒数 (またはミリ秒)。 JavaScript の new Date(timestamp * 1000) (秒) または new Date(timestamp) (ミリ秒) の日付に変換します。 Math.floor(date.getTime() / 1000) を使用して日付を元に戻します。タイムスタンプ コンバーターを使用すると、ブラウザで両方を瞬時に行うことができます。

導入

Unix タイムスタンプ (エポック時間または POSIX 時間とも呼ばれます) は、うるう秒を除いた、1970-01-01 00:00:00 UTC (Unix エポック) からの経過秒数です。これは、タイムゾーンに依存せず、簡単にソートできる単一の整数であるため、コンピューティングにおける時間の共通語です。ほとんどのシステムでは秒が使用されます。 JavaScript と多くのデータベースはミリ秒を使用します。

ステップバイステップ

  1. 秒とミリ秒を理解する

    ほとんどのバックエンド システムと APIs は秒 (2286 までの 10 桁のタイムスタンプ) を使用します。 JavaScript の Date と Java の Instant はミリ秒 (13 桁) を使用します。 API がどの単位を想定しているかを常に確認してください。これらを混合すると、日付が 1000 倍ずれます (約 31 年ずれます)。

  2. タイムスタンプを読み取り可能な日付に変換する

    タイムスタンプをタイムスタンプ コンバータに貼り付けます。長さによって秒とミリ秒 (10 桁と 13 桁) を検出し、日付を UTC とローカル タイムゾーンで表示します。コード内: new Date(1700000000 * 1000).toISOString() は「2023-11-14T22:13:20.000Z」を返します。

  3. 日付をタイムスタンプに変換する

    コンバータに日付と時刻を入力します。 Unix タイムスタンプを返します。コード内: Math.floor(new Date('2026-08-28T12:00:00Z').getTime() / 1000) はエポック秒を返します。現地時間のあいまいさを避けるために、常にタイムゾーン (Z またはオフセット) を指定してください。

  4. タイムゾーンを正しく処理する

    Unix タイムスタンプは常に UTC であり、タイムゾーンはありません。プレゼンテーション層のみでローカル表示に変換します。現地時間をタイムスタンプとして保存しないでください。 UTC を保存し、表示上で変換します。 DST を正しく処理するには、IANA タイムゾーン名 (America/New_York) を Intl.DateTimeFormat とともに使用します。

  5. 日付間の差異を計算する

    2 つのタイムスタンプを減算して、差を秒 (またはミリ秒) で取得します。分は 60、時間は 3600、日は 86400 で割ります。人間にわかりやすい範囲を指定するには日付差異ツールを使用し、生年月日ベースの年齢には年齢計算ツールを使用します。

例

Unixの時代

入力: 0 (seconds)

出力: 1970-01-01 00:00:00 UTC

エポックから 10 億秒後

入力: 1000000000 (seconds)

出力: 2001-09-09 01:46:40 UTC

UTC での 2026 年の始まり

入力: 2026-01-01T00:00:00Z

出力: 1767225600 (秒) / 1767225600000 (ミリ秒)

2 つの日付の違い

入力: 1767225600 - 1700000000

出力: 67225600 seconds = 778.08 days ≥2 years 31 days

よくある問題

  • 秒とミリ秒の混乱: 10 桁のタイムスタンプをミリ秒として読み取ると、1970 年の日付がわかります。秒として読み取られる 13 桁のタイムスタンプは 32 ビット整数をオーバーフローします。桁数によって単位を検出するか、API に明示的に文書化します。
  • 現地時間をタイムスタンプとして保存: タイムスタンプは UTC です。 UTC-5 に設定されたブラウザで Date.now() を計算し、その結果をローカルとして扱う場合、DST 移行により年に 2 回、データが 1 時間シフトされます。
  • 2038-01-19 03:14:07 UTC (Y2038) の 32 ビット オーバーフロー: 符号付き 32 ビット秒タイムスタンプを使用するシステムは、この時点以降の日付を表すことができません。新しいシステムでは 64 ビットまたはミリ秒のタイムスタンプを使用します。
  • うるう秒は無視されます。Unix タイムスタンプはうるう秒をスキップするため、2 つのタイムスタンプの差は経過した SI 秒数と等しくなりません。ほとんどのアプリケーションはこれを無視できます。高精度の天文学や金融にはそれができません。

ヒント

  • タイムスタンプは常に UTC で保存および送信します。 IANA タイムゾーンで Intl.DateTimeFormat を使用して、表示レイヤーでのみ現地時間に変換します。
  • 人間が判読できる APIs と保存用のタイムスタンプには ISO 8601 文字列 (例: 2026-08-28T12:00:00Z) を使用します。ISO 文字列はタイムゾーンを明示的に保持し、明確です。
  • タイムスタンプを比較する場合は、両側で同じ単位 (秒またはミリ秒) を使用してください。単位の不一致は、最も一般的な日付のバグの 1 つです。
  • タイムスタンプ コンバーターを使用して、デバッグ中に API 応答の健全性をチェックします。UTC と現地時間の両方が表示されるため、タイムゾーンのバグをすぐに見つけることができます。

関連ツール

関連ガイド

参考文献