日付を epoch に:時刻を Unix タイムスタンプまたはエポック時間に変換

人間の日付と時刻をエポック時間・Unix タイムスタンプの秒・Unix タイムスタンプのミリ秒・ISO 出力に変換する方法を学びます。タイムゾーンの選択、UTC への変換、API ペイロード、よくある誤りを扱います。

日付を epoch に変換するとは

日付を epoch に変換するとは、読みやすい日付・時刻・タイムゾーンを受け取り、数値のタイムスタンプを返すことです。その数値はどこでも同じ 1 つの瞬間を表します。例えば 2026-01-01 00:00:00 UTC は Unix 秒 1767225600 になります。

タイムゾーンは入力の一部

2026-01-01 00:00 のようなローカル時刻は、タイムゾーンがないと不完全です。UTC、ニューヨーク、ロサンゼルス、ロンドン、東京の深夜はそれぞれ別の瞬間であり、したがって別の epoch タイムスタンプになります。時刻を Unix タイムスタンプに変換する前に、必ずタイムゾーンを選んでください。

  • 2026-01-01 00:00 UTC = 1767225600 秒
  • 2026-01-01 00:00 America/New_York = 1767243600 秒
  • 2026-01-01 00:00 America/Los_Angeles = 1767254400 秒
  • 2026-01-01 00:00 Asia/Tokyo = 1767193200 秒

秒それともミリ秒?

日付を epoch に変換したら、対象システムが求める単位を選びます。バックエンド API、Linux コマンド、PHP、Python、Go、多くの SQL 関数は通常 Unix 秒を使います。JavaScript Date、ブラウザ API、多くの解析ペイロードは通常 Unix ミリ秒を使います。

  • Unix 秒:1767225600
  • Unix ミリ秒:1767225600000
  • JavaScript:new Date('2026-01-01T00:00:00Z').getTime() はミリ秒を返す
  • JavaScript 秒:Math.floor(new Date('2026-01-01T00:00:00Z').getTime() / 1000)
  • SQL は to_timestamp() や FROM_UNIXTIME() で秒を受け取ることが多い

日付 → epoch が使われる場面

日付を epoch に変換するのは、システムが整形済みの日付文字列ではなく数値の時間境界を求めるときに役立ちます。

  • expires_at や starts_at の値が必要な API テスト
  • タイムスタンプ列を埋め戻すデータベースのマイグレーション
  • 開始と終了の epoch 境界が必要な解析クエリ
  • 実行時刻を数値で保存する cron・スケジューラ・キューのジョブ
  • 有効期限タイムスタンプ付きの署名付き URL やトークン

日付 → epoch の FAQ

時刻を epoch 時間に変換するには?
日付・時刻・タイムゾーンを選び、その瞬間を Unix 秒またはミリ秒に変換します。タイムゾーンが欠けていると、結果が数時間ずれることがあります。
timestamp → epoch は date → epoch と同じ?
通常は同じです。読みやすいタイムスタンプや日時文字列を epoch の数値に変換することを意味します。
API には epoch 秒とミリ秒のどちらを送るべき?
API のドキュメントに従ってください。Unix timestamp とあれば多くは秒ですが、JavaScript 向けの API はミリ秒を期待する場合があります。
なぜ同じ日付がタイムゾーンによって違う epoch になる?
ローカルの時計時刻は、タイムゾーンを付けて初めて 1 つの瞬間を特定するからです。2026-01-01 00:00 は UTC で 1767225600 ですが、ニューヨークでは 1767243600 — 実時間で 5 時間後です。変換前にタイムゾーンを設定してください。