UTC
-
將 Unix 時間戳轉換為日期,或反向轉換。支援秒與毫秒、同時顯示 UTC 與本地時間,全部在瀏覽器內完成。
在你的瀏覽器中執行
Unix 時間戳記錄的是自 1970-01-01 00:00:00 UTC(稱為 epoch,紀元)以來經過的秒數。 它本身不帶時區資訊:同一個瞬間在世界任何地方的時間戳都相同。正因如此,系統內部多半以 這種方式儲存時間,只在顯示給人看時才轉換成當地曆法。
這是「日期跑到 1970 年」這類錯誤最常見的來源。各平台採用的單位並不一致:
| 來源 | 單位 | 2025 年的時間戳長這樣 |
|---|---|---|
Unix date +%s、PostgreSQL、Go、Python time.time() | 秒 | 1754438400 |
JavaScript Date.now()、Java System.currentTimeMillis() | 毫秒 | 1754438400000 |
最快的判斷方式是看位數。以現在的時間而言,秒為單位是 10 位數,毫秒為單位則是 13 位數。把毫秒值餵給預期收到秒的程式,日期會落在西元 57000 年左右;反過來則會停在 1970 年 1 月。
date +%s # shell,秒
Date.now() // 毫秒
Math.floor(Date.now() / 1000) // 秒
import time; int(time.time())
SELECT EXTRACT(EPOCH FROM NOW()); -- PostgreSQL
若系統以 有號 32 位元整數 儲存時間戳,數值會在 2147483647 溢位,也就是
2038-01-19 03:14:07 UTC。屆時計數器翻轉為負數,日期會跳回 1901 年。現代 64 位元平台
不受影響,但這個問題仍會出現在嵌入式韌體、較舊的檔案格式,以及宣告為 32 位元的資料庫
欄位中。
時間戳本身是絕對的,但你把它轉換成的日期不是。本工具同時顯示 UTC 與瀏覽器的本地時間; 只要你的時區偏移不為零,兩者就會不同,有時甚至差整整一天。當你拿轉換結果和另一個系統 比對時,請先確認雙方使用同一個時區,再判斷是不是真的有錯。
轉換只是在你的瀏覽器裡做算術,你輸入的內容不會傳送到任何地方。