Unix 時間戳轉換器使用方法
- 頁面最上方會即時顯示目前時間的時間戳,按一下就能複製。
- 在時間戳 → 日期欄位輸入數字,就會顯示 UTC、ISO 8601、本機時區的日期和時間,以及距離現在多久。
- 單位會依位數自動判斷;如有需要,也可以手動選擇「秒」或「毫秒」。
- 在日期 → 時間戳選好日期、時間和時區,就會算出秒和毫秒的值。在台灣或香港換算當地時間時,時區請選本機時區。
什麼是 Unix 時間戳(epoch time)?
Unix 時間戳是從 1970 年 1 月 1 日 0 時 0 分 0 秒(UTC)起算,到某個時間點經過的秒數。同一時刻在全世界的時間戳都相同,不受時區影響,所以伺服器紀錄檔、資料庫和 API 回應經常用它來儲存日期。
- 0 → 1970-01-01 08:00:00(台灣/香港時間)
- 1,000,000,000 → 2001-09-09 09:46:40(台灣/香港時間)
- 1,700,000,000 → 2023-11-15 06:13:20(台灣/香港時間)
10 位數和 13 位數時間戳的差別
10 位數的時間戳以秒為單位,13 位數的則以毫秒(千分之一秒)為單位。Linux、PHP 和 Python 的 time() 通常回傳秒;JavaScript 的 Date.now() 和 Java 的 System.currentTimeMillis() 則回傳毫秒。毫秒值除以 1,000 就是秒值。
| 環境 | 取得目前時間戳 | 單位 |
|---|---|---|
| JavaScript | Date.now() | 毫秒 |
| Python | time.time() | 秒(含小數) |
| Java | System.currentTimeMillis() | 毫秒 |
| Linux Shell | date +%s | 秒 |
| MySQL | UNIX_TIMESTAMP() | 秒 |
把時間戳換算成台灣或香港時間
時間戳本身以 UTC 為準。台灣(CST)和香港(HKT)都比 UTC 快 8 小時,所以 UTC 時間加上 8 小時,就是當地時間。兩地目前都不實施夏令時間,一年四季都可以用 UTC+8 換算。
這個工具的時區選單預設為 UTC+9(日本/韓國時間)。在台灣或香港使用時,請選擇本機時區;只要裝置時區設定正確,就會以 UTC+8 換算。換算結果表格中,「本機時區」那一列顯示的就是當地時間。
在 Excel 或 Google 試算表中,可以使用 =(A1/86400)+DATE(1970,1,1)+8/24:先把時間戳除以一天的秒數(86,400),再加上 1970 年 1 月 1 日和 8 小時,就能換算成台灣或香港時間。儲存格格式請設為日期時間。
什麼是 2038 年問題?
有些舊系統用有號 32 位元整數儲存時間戳。這個數值的上限是 2,147,483,647,相當於台灣/香港時間 2038 年 1 月 19 日 11:14:07。一旦超過上限,數值會溢位變成負數,日期就會跳回 1901 年。這就是2038 年問題(Y2K38)。現代的作業系統和程式語言大多改用 64 位元整數,因此不會受到影響。