收藏

開發者工具

InoTools Blog
類別:教學

什麼是 Unix 時間戳記?日期轉換說明

在 API 回應或日誌中看到 1710000000 這樣的數字?這就是 Unix 時間戳記。讓我們來了解這個在程式設計、資料庫和系統管理中廣泛使用的格式。

什麼是 Unix 時間戳記?

Unix 時間戳記(紀元時間,Epoch Time)是以從 1970 年 1 月 1 日 00:00:00 UTC 算起的經過秒數來表示時間的格式。這個基準時間被稱為「Unix 紀元」。

例如:

  • 0 = 1970 年 1 月 1 日 00:00:00 UTC
  • 1000000000 = 2001 年 9 月 9 日 01:46:40 UTC
  • 1710000000 = 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_atupdated_at 欄位值儲存
  • API 回應 — 在 RESTful API 和 GraphQL 中回傳日期時間資訊的標準格式
  • 日誌管理 — 伺服器日誌、存取日誌的時間戳
  • JWTiat(簽發時間)和 exp(到期時間)聲明的值
  • 快取控制 — TTL(存活時間)的到期判定
  • 檔案系統 — 檔案建立時間和修改時間的內部表示

Unix 時間戳記的優勢

  • 不依賴時區 — 基於 UTC,全球通用。沒有地區間的混淆
  • 計算容易 — 兩個時間的差值就是簡單的減法
  • 節省空間 — 用單一整數表示,比字串日期的資料量更小
  • 排序簡單 — 透過數值大小比較即可按時間順序排列
  • 不依賴語言/作業系統 — 在所有程式語言和系統中統一處理

如何進行時間戳記轉換

Unix 時間戳記轉換可以使用 本站的「Unix Timestamp Converter」輕鬆完成。所有處理都在瀏覽器內完成,輸入資料不會被傳送到任何外部伺服器。無需註冊、完全免費。

使用 Unix 時間戳記轉換工具

工具使用方法

  1. 開啟 Unix Timestamp Converter
  2. 輸入時間戳記(數字),即可轉換為可讀的日期時間
  3. 反過來輸入日期和時間,即可顯示對應的時間戳記
  4. 還可以即時查看當前的時間戳記
  5. 複製需要的格式使用

常見問題

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 記錄的有效期間