類別:教學
什麼是 Unix 時間戳記?日期轉換說明
在 API 回應或日誌中看到 1710000000 這樣的數字?這就是 Unix 時間戳記。讓我們來了解這個在程式設計、資料庫和系統管理中廣泛使用的格式。
什麼是 Unix 時間戳記?
Unix 時間戳記(紀元時間,Epoch Time)是以從 1970 年 1 月 1 日 00:00:00 UTC 算起的經過秒數來表示時間的格式。這個基準時間被稱為「Unix 紀元」。
例如:
0= 1970 年 1 月 1 日 00:00:00 UTC1000000000= 2001 年 9 月 9 日 01:46:40 UTC1710000000= 2024 年 3 月 9 日 16:00:00 UTC
所有程式語言和作業系統都支援這個格式,使其成為處理日期時間資料的通用語言。
為什麼需要 Unix 時間戳記?
使用字串格式("2024-03-09 16:00:00")處理日期時間時存在許多問題:
- 時區模糊性 —
"2024-03-09 16:00"是哪個時區的 16 時? - 格式不統一 —
"03/09/2024"是 3 月 9 日還是 9 月 3 日? - 計算複雜 — 要計算兩個日期的差異需要解析
Unix 時間戳記從根本上解決了這些問題。
Unix 時間戳記的使用場景
- 資料庫 — 作為
created_at、updated_at欄位值儲存 - API 回應 — 在 RESTful API 和 GraphQL 中回傳日期時間資訊的標準格式
- 日誌管理 — 伺服器日誌、存取日誌的時間戳
- JWT —
iat(簽發時間)和exp(到期時間)聲明的值 - 快取控制 — TTL(存活時間)的到期判定
- 檔案系統 — 檔案建立時間和修改時間的內部表示
Unix 時間戳記的優勢
- 不依賴時區 — 基於 UTC,全球通用。沒有地區間的混淆
- 計算容易 — 兩個時間的差值就是簡單的減法
- 節省空間 — 用單一整數表示,比字串日期的資料量更小
- 排序簡單 — 透過數值大小比較即可按時間順序排列
- 不依賴語言/作業系統 — 在所有程式語言和系統中統一處理
如何進行時間戳記轉換
Unix 時間戳記轉換可以使用 本站的「Unix Timestamp Converter」輕鬆完成。所有處理都在瀏覽器內完成,輸入資料不會被傳送到任何外部伺服器。無需註冊、完全免費。
工具使用方法
- 開啟 Unix Timestamp Converter
- 輸入時間戳記(數字),即可轉換為可讀的日期時間
- 反過來輸入日期和時間,即可顯示對應的時間戳記
- 還可以即時查看當前的時間戳記
- 複製需要的格式使用
常見問題
Q. 支援毫秒時間戳記嗎?
A. 是的。同時支援秒(10 位數,例如:1710000000)和毫秒(13 位數,例如:1710000000000)。JavaScript 的 Date.now() 回傳毫秒,因此 13 位數的時間戳記也很常見。
Q. 什麼是 2038 年問題?
A. 使用 32 位有號整數儲存 Unix 時間戳記的系統,將在 2038 年 1 月 19 日 03:14:07 UTC 發生整數溢位。64 位系統可以處理大約 2920 億年後的時間。大多數現代系統已經遷移到 64 位。
Q. 負數的時間戳記有效嗎?
A. 是的。負數時間戳記表示 1970 年 1 月 1 日之前的日期時間。例如 -86400 表示 1969 年 12 月 31 日。
相關術語
- Unix 紀元(Unix Epoch) — 1970 年 1 月 1 日 00:00:00 UTC。時間戳記的起點
- 紀元秒(Epoch Seconds) — 從 Unix 紀元算起的經過秒數
- UTC(協調世界時) — 用作時區基準的時間標準
- ISO 8601 — 日期時間的國際標準表示法。例如:
2024-03-09T16:00:00Z - TTL(存活時間) — 快取和 DNS 記錄的有效期間