Unix 時間戳是什麼
Unix 時間戳(Unix timestamp,也叫 Epoch time)是一個整數。起點叫「紀元」(epoch),是 1970-01-01 00:00:00 UTC。時間戳就是從這一刻到現在經過的秒數。
它有兩個重點:
- 時間戳本身沒有時區。 同一個時間戳,在台北和倫敦代表同一個瞬間。只有「顯示成日期」時才需要選時區。台灣是 UTC+8,目前沒有夏令時間。
- 秒和毫秒是兩種單位。 Unix 系統、多數後端與資料庫用秒。JavaScript 的
Date.now()和 Java 的System.currentTimeMillis()用毫秒。現在的秒級時間戳是 10 位數,毫秒級是 13 位數。
另外,POSIX 標準規定每天固定算 86,400 秒。所以 Unix 時間戳不計入閏秒。
使用情境
- 看懂日誌與資料庫裡的時間。 日誌、資料庫欄位、API 回應常存
1792540800這種數字。貼進來就知道是哪一天幾點。 - 檢查 JWT、快取或簽名網址的到期時間。 JWT 的
exp、iat欄位用秒級時間戳。轉換後就能確認權杖是不是已經過期。 - 寫排程或測資時算出特定時間點。 例如要測「台灣時間 2026-10-21 09:00」,先在這裡轉成時間戳,再填進程式或資料庫。
範例
| 輸入 | 輸出 |
|---|---|
0(秒) | 1970-01-01 00:00:00 UTC = 1970-01-01 08:00:00 台灣時間 |
1792540800(秒,10 位) | 2026-10-21 00:00:00 UTC = 2026-10-21 08:00:00 台灣時間 |
1792540800000(毫秒,13 位) | 同上,同一個瞬間 |
| 台灣時間 2026-10-21 09:00:00 | 秒:1792544400;毫秒:1792544400000 |
2147483647(秒) | 2038-01-19 03:14:07 UTC = 2038-01-19 11:14:07 台灣時間 |
最後一行是 32 位元有號整數能存的最大值。只用 32 位元存時間戳的舊系統,過了這一秒就會溢位,這就是「2038 年問題」。
常見錯誤
- 把毫秒當成秒。 13 位數的毫秒值被當成秒,會變成數萬年後的日期。反過來,把秒當毫秒,會得到 1970 年 1 月。看到日期在 1970 年或遠在未來,先檢查單位。本工具會依位數自動判斷,並標示判斷結果。
- 差了 8 小時。 這是最常見的時區錯誤。原因通常是:把「台灣時間 09:00」當成「UTC 09:00」轉換,或反過來。同一個牆上時間,兩種解讀剛好差 8 小時(28,800 秒)。轉換時一定要說清楚輸入的是哪個時區。
- 以為時間戳裡存了時區。 時間戳只是一個瞬間,沒有時區資訊。若你需要記住「使用者當時在哪個時區」,要另外存,例如存成 ISO 8601/RFC 3339 格式的
2026-10-21T09:00:00+08:00。 - 用 32 位元整數存時間戳。 2038-01-19 之後會溢位。資料庫欄位與程式型別請用 64 位元整數。
- 毫秒除以 1000 後留下小數。 很多 API 只接受整數秒。
1792540800123 / 1000會得到1792540800.123,要先取整數(通常無條件捨去)。
常見問題(FAQ)
- 怎麼分辨時間戳是秒還是毫秒?
- 看位數。現在的秒級時間戳是 10 位數,毫秒級是 13 位數。10 位數的秒級範圍從 2001-09-09 一直用到 2286-11-20,所以近期內這個判斷都成立。
- Unix 時間戳有時區嗎?
- 沒有。它永遠以 UTC 的 1970-01-01 00:00:00 為起點計算。時區只影響「顯示成日期」的那一步。本工具同時顯示 UTC 與台灣時間(UTC+8),也可以改成你瀏覽器的時區。
- 什麼是 2038 年問題?
- 用 32 位元有號整數存秒級時間戳,最大只到
2147483647,也就是 2038-01-19 03:14:07 UTC。再加一秒就會溢位成負數,日期跳回 1901 年。新系統用 64 位元整數就不會有這個問題。 - 時間戳有算閏秒嗎?
- 沒有。POSIX 規定每天固定 86,400 秒,所以 Unix 時間戳不計閏秒。一般應用不需要處理;需要精確到秒的科學或金融系統,要另外查閏秒表。
- 我輸入的時間會被送出去嗎?
- 不會。轉換都在你的瀏覽器裡計算,不會送到伺服器。顯示「現在時間」時讀的是你電腦的時鐘,若你的電腦時間不準,結果也會跟著不準。
來源(查核日期 2026-10-21)
- POSIX.1-2024(The Open Group Base Specifications Issue 8),4.19〈Seconds Since the Epoch〉:時間戳定義;公式以每天 86,400 秒計算:https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap04.html
- MDN〈Date.now()〉:回傳自紀元(1970-01-01 00:00 UTC)起的毫秒數:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now
- RFC 3339〈Date and Time on the Internet: Timestamps〉:帶時區偏移的日期時間寫法(
Z或+08:00):https://www.rfc-editor.org/rfc/rfc3339