什麼是 Unix 時間戳?
Unix 時間戳(也稱為紀元時間 epoch time 或 POSIX 時間)是指從 1970 年 1 月 1 日 00:00:00 UTC 起所經過的秒數,並且不計入閏秒。它是一種跨時區、不受地區影響的時間表示方式,廣泛應用於資料庫、API、日誌檔與各種程式語言中。本轉換器會將你輸入的時間視為 UTC,並同時回傳對應的秒數與毫秒兩種紀元數值。
如何使用這個轉換器
輸入你想換算的那一刻的年、月、日、時、分、秒。所有數值都會以 UTC(世界協調時間)來解讀。按下計算後,工具會回傳對應的 Unix 時間戳秒數,以及 JavaScript 的 Date 物件和許多網頁 API 常用的毫秒數值。
公式解析
計算方式是先算出 1970 年 1 月 1 日到你所選日期之間的完整天數,乘以 86,400(一天的秒數),再加上當天時間所代表的秒數:
$$t = \left\lfloor \frac{\text{UTC}\left(\text{Year},\ \text{Month},\ \text{Day},\ \text{Hour},\ \text{Minute},\ \text{Second}\right) - \text{UTC}(1970)}{1000} \right\rfloor$$
天數計算會自動處理閏年,因此像 2000、2020、2024 年的 2 月 29 日都能正確計入。
實際範例
以 2024 年 1 月 1 日 00:00:00 UTC 為例。從 1970-01-01 到 2024-01-01 共有 19,723 個完整天數。相乘可得:$$19{,}723 \times 86{,}400 = 1{,}704{,}067{,}200 \text{ 秒}$$由於沒有額外的時、分、秒,因此 Unix 時間戳為 1,704,067,200,毫秒數值則為 1,704,067,200,000。
常見問題
輸入的是我的當地時間嗎?不是。為了讓結果不產生歧義,所有輸入一律視為 UTC。如有需要,請先將你的當地時間換算成 UTC 再輸入。(例如台灣時間為 UTC+8,需減去 8 小時。)
時間戳可以是負數嗎?本工具僅接受 1970 年以後的年份,所以結果一定是零或正數。1970 年以前的日期會產生負的紀元值。
為什麼同時顯示秒與毫秒?大多數 Unix 系統使用秒,而 JavaScript 與許多網頁 API 則使用毫秒。為方便起見,兩者都會顯示。