Epoch 時間轉換器

將 Unix 時間戳轉換為 UTC 日期,或將日期轉換為 Epoch 秒數。

選擇要將時間戳轉換為日期,還是將日期轉換為時間戳。
輸入以秒為單位的 Unix 時間戳。

轉換值

2024-03-09T16:00:00.000Z

UTC 值2024-03-09T16:00:00.000Z
Unix 毫秒1,710,000,000,000
星期星期六

如何使用此 Epoch 時間轉換器

  1. 選擇轉換模式

    在「轉換模式」欄位中選擇「Epoch 轉日期」或「日期轉 Epoch」。

  2. 對於 Epoch 轉日期

    在「Epoch 時間戳(秒)」欄位中輸入以秒為單位的 Unix 時間戳。

  3. 對於 日期轉 Epoch

    在「日曆日期」中選擇日期,然後根據需要設定「小時 (UTC)」、「分鐘 (UTC)」和「秒 (UTC)」。

  4. 讀取結果

    此計算器顯示 UTC 值、Unix 毫秒以及星期幾。

計算方法

此 Epoch 時間轉換器的工作原理

此 Epoch 時間轉換器可在 Unix 時間戳與易於閱讀的 UTC 日期之間進行轉換。Unix 時間(也稱為 POSIX 時間或 Epoch 時間)是指自 Unix Epoch(定義為 1970 年 1 月 1 日午夜 UTC,即 1970-01-01T00:00:00Z)以來所經過的秒數。這種單一整數表示法是資料庫、API、日誌文件、JWT 令牌以及幾乎所有現代編程語言中存儲和傳輸時間戳的事實標準。此轉換器支援雙向轉換:輸入數字時間戳會返回對應的 UTC 日期、星期和毫秒值;而輸入日曆日期和時間則會返回以秒和毫秒為單位的 Epoch 值。

公式
Unix 時間 = 自 1970-01-01T00:00:00Z 起經過的秒數
Epoch 參考點:1970 年 1 月 1 日午夜 UTC(Unix 時間戳 0)
Unix 時間 (秒) 從 Unix 紀元到指定日期時間的總秒數
Unix 時間 (毫秒) Unix 時間(秒)乘以 1,000 — 用於 JavaScript Date、Java System.currentTimeMillis() 及許多 API
UTC 日期 對應於給定時間戳的格里高利曆日期和 24 小時制時間
星期 從轉換後的 UTC 日期得出的星期名稱
範例

要將 Unix 時間戳 1,700,000,000 轉換為日期:從 1970-01-01 00:00:00 UTC 開始,增加 1,700,000,000 秒。這等於 19,675 天、17 小時、46 分鐘和 40 秒。得到的 UTC 日期是 2023-11-14 22:13:20 UTC,當天是星期二。毫秒等值為 1,700,000,000,000。相反地,輸入 2023 年 11 月 14 日 22:13:20 UTC 會返回正好 1,700,000,000 的 epoch 值。

時間戳記 0 轉換為 1970-01-01 00:00:00 UTC(星期四)。對應的毫秒值為 0。

時間戳記 1,704,000,000 轉換為 2023-12-31 12:00:00 UTC(星期日)。在「日期轉紀元」模式下輸入該日期和時間將返回 1,704,000,000。

假設條件
  • 所有計算均以 UTC 為準。本地時間轉換需在轉換後套用相應的時區偏移量。
  • 不計算閏秒。與 POSIX 相同,此轉換器將每一天視為精確的 86,400 秒,這符合大多數程式語言和作業系統的行為。
  • 負數時間戳表示 Unix 紀元(1970 年 1 月 1 日)之前的日期。例如,-86400 對應於 1969 年 12 月 31 日。
  • 毫秒時間戳在輸入前應除以 1,000;此轉換器接受秒作為輸入,並在結果中顯示對應的毫秒值。
備註
  • JavaScript 的 Date.now() 和 Java 的 System.currentTimeMillis() 返回的是毫秒而非秒 — 在此輸入數值前請先除以 1,000,或使用毫秒輸出進行比較。
  • 2038 年問題會影響 32 位元有符號整數時間戳,這些時間戳將在 2038 年 1 月 19 日 03:14:07 UTC 發生溢位。大多數現代系統已遷移至 64 位元時間戳。
  • 在調試 API 回應或日誌文件時,請留意看起來正好偏差 3,600 或 7,200 秒的時間戳 — 這通常表示在處理過程中的某個環節套用(或忽略)了時區偏移。
  • Epoch 時間始終單調遞增(忽略閏秒調整),這使其成為排序事件、計算持續時間以及生成基於時間的唯一識別碼的理想選擇。
來源
  1. IEEE Std 1003.1 (POSIX) — Epoch 以來的秒數定義
  2. Unix epoch 起源 — Unix Heritage Society 與 Bell Labs 文檔
  3. RFC 3339 — 網際網路上的日期與時間:時間戳

什麼是 Unix 時間戳記?

Unix 時間戳記是自 1970 年 1 月 1 日 UTC 午夜(即 Unix 紀元)以來所經過的秒數。這個單一整數是在資料庫、API、日誌文件和大多數程式語言中表示時間的事實標準。由於它與時區無關且單調遞增,因此簡化了排序、時長計算和基於時間的比較。JavaScript 的 Date.now() 和許多 API 會返回毫秒(1,000 × 秒),因此在此輸入毫秒值之前請先除以 1,000。負數時間戳記代表 1970 年之前的日期;例如,−86400 正好是紀元前的一天。

開發者使用紀元時間的場景

開發者在資料庫中存儲事件時間、在 JSON API 中序列化日期、生成基於時間的快取鍵以及調試日誌條目時會使用 Unix 時間戳記。資料庫欄位通常將時間戳記存儲為整數,以便進行高效的索引和範圍查詢。API 回應經常返回紀元秒數或毫秒數,以避免時區歧義。在調試時,將日誌或 JWT 聲明中的原始時間戳記轉換為人類可讀的日期,可以快速顯示該值是否正確或是否存在時區偏差。紀元時間還用於速率限制、會話過期以及在分散式系統中生成可排序的唯一識別碼。

Epoch 時間轉換器常見問題

什麼是 Unix epoch?

Unix epoch 是衡量 Unix 時間的參考點:1970 年 1 月 1 日午夜 UTC (1970-01-01T00:00:00Z)。時間戳 0 對應的就是那個時刻。

為什麼我的 JavaScript 時間戳位數較多?

JavaScript 的 Date.now() 回傳的是自 Epoch 以來的毫秒數,而非秒數。請除以 1,000 以轉換為此工具使用的秒數格式,或直接與毫秒輸出進行比較。

我可以輸入負的時間戳嗎?

可以。負值代表 Epoch 之前的日期。例如,-86400 對應於 1969-12-31T00:00:00Z,即 Epoch 前整整一天。

這會處理閏秒嗎?

不會,這符合 POSIX 標準。POSIX 時間假設每天固定為 86,400 秒。自 1972 年以來插入的 27 個閏秒並未單獨表示,這意味著在閏秒邊界處,UTC 與 Unix 時間可能會有高達一秒的差異。

什麼是 2038 年問題?

將 Unix 時間儲存為 32 位元有號整數的系統,將在 2038 年 1 月 19 日 03:14:07 UTC 發生溢位,轉變為一個巨大的負數並產生 1901 年的日期。大多數現代平台現在使用 64 位元時間戳,在超過 2,900 億年內都不會溢位。

作者 Jan Křenek 創辦人兼首席開發者
審核者 DigitSum 方法論審查 公式驗證與品質保證
最後更新 2026年3月10日

此結果僅供估計,重大決策請諮詢專業人士。

輸入內容將保留在瀏覽器中,除非未來的功能另有明確說明。