透過 MCP 連接 →

輸入計算

保留預設值以換算某個特定時刻,或輸入目前時間(毫秒)。

數學公式

廣告

結果

Unix 時間戳記(Epoch)
1,700,000,000
自 1970 年 1 月 1 日 UTC 起算的秒數
毫秒 1,700,000,000,000
自紀元起算的分鐘數 28,333,333
自紀元起算的小時數 472,222
自紀元起算的天數 19,675

什麼是 Unix 時間戳記?

Unix 時間戳記(又稱 epoch time 或 POSIX time)指的是從 1970 年 1 月 1 日 00:00:00 UTC——也就是「Unix 紀元(Unix epoch)」——起算所經過的秒數,並且不計算閏秒。它是電腦用單一數字來儲存某個時間點的通用方式,完全不受時區影響。本計算器會把以毫秒為單位的數值換算成標準的 Unix 時間戳記(秒),同時顯示自紀元起算對應的分鐘、小時與天數。

從 1970 年 1 月 1 日的零點開始、計數器不斷增加至當前時刻的時間軸
Unix 時間戳記錄自紀元(1970 年 1 月 1 日 UTC)起經過的秒數。

使用方式

輸入一個以毫秒為單位的時間值。若想取得目前的 Unix 時間戳記(「epoch now」),請填入當下的時間(毫秒);欄位中的預設值僅作為範例參考。計算器會除以 1,000 並無條件捨去,得到整數秒——這正是幾乎所有 API、資料庫與程式語言所採用的格式。

公式解析

核心換算公式為 $$\text{Epoch} = \left\lfloor \dfrac{\text{Time (ms)}}{1000} \right\rfloor$$。毫秒提供千分之一秒的精度,但傳統的 Unix 時間戳記以整數秒為單位,因此我們取 floor(捨去小數部分)。接著,將 epoch 分別除以 60、3,600 與 86,400,就能得到對應的分鐘、小時與天數。

$$\begin{gathered} \text{Epoch} = \left\lfloor \dfrac{\text{Time (ms)}}{1000} \right\rfloor \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \text{Minutes} &= \left\lfloor \tfrac{\text{Epoch}}{60} \right\rfloor \\ \text{Hours} &= \left\lfloor \tfrac{\text{Epoch}}{3600} \right\rfloor \\ \text{Days} &= \left\lfloor \tfrac{\text{Epoch}}{86400} \right\rfloor \end{aligned} \right. \end{gathered}$$

毫秒值除以 1000 並向下取整以得出紀元秒
將毫秒除以 1000 並向下取整可得到整數的紀元秒。

實際範例

假設目前時間為 1,700,000,000,000 毫秒。除以 1,000 得到 1,700,000,000 秒,這就是 Unix 時間戳記。

$$\left\lfloor \frac{1{,}700{,}000{,}000{,}000}{1000} \right\rfloor = 1{,}700{,}000{,}000$$

再將 1,700,000,000 除以 86,400 並無條件捨去,可得自 1970 年 1 月 1 日起算的 19,675 天,對應的日期大約是 2023 年 11 月中旬。

$$\left\lfloor \frac{1{,}700{,}000{,}000}{86400} \right\rfloor = 19{,}675 \text{ days}$$

常見問題

為什麼是秒而不是毫秒?最初的 Unix 標準採用秒為單位。而 JavaScript 的 Date.now() 回傳的是毫秒,因此你經常需要除以 1,000。

它會處理時區嗎?不會——Unix 時間一律以 UTC 為基準。同一個瞬間在地球上任何地方都對應到相同的時間戳記。

什麼是「2038 年問題」?若系統以有號 32 位元整數儲存時間戳記,將在 2038 年 1 月 19 日發生溢位。現代的 64 位元系統已可避免這個問題。

最後更新: