轉換器

Unix 時間戳轉換器

在 Unix 時間戳和可讀日期之間轉換。即時紀元時鐘每秒更新。貼上任何 10 位(秒)或 13 位(毫秒)時間戳,即可轉換到任意時區。

目前 Unix 時間戳 · 即時
1783399211
 

什麼是 Unix 時間戳記?

Unix 時間戳記是自 1970 年 1 月 1 日 00:00:00 UTC 起經過的秒數。它也稱為紀元時間或 POSIX 時間。Unix 時間轉換不包含閏秒。該值是單一整數,指向某一個時刻。這個整數不依賴時區或地區設定。幾乎每種語言、資料庫和作業系統都支援紀元時間戳記。它們是在系統之間儲存和傳輸時間的通用標準。

秒與毫秒:自動偵測格式

大多數 Unix 時間戳記以秒為單位——一個目前約為 17 億的 10 位數字。JavaScript 的 Date.now() 以及許多瀏覽器和 Web API 則回傳毫秒,產生 13 位數字。本轉換器會依輸入值的數量級自動偵測單位。

  • 10 位數字(例如 1700000000)→ 自 Unix 紀元起的秒數
  • 13 位數字(例如 1700000000000)→ 自 Unix 紀元起的毫秒數
  • 將秒轉換為毫秒:乘以 1000
  • 將毫秒轉換為秒:除以 1000(用 Math.floor 取整數)

紀元時間為什麼從 1970 年 1 月 1 日開始?

這個日期是 Unix 最初的開發者在 1970 年代初選定的,作為早於現代運算的一個便利參考點。由於幾乎所有有用的時間戳記都是正整數,算術和比較都很簡單。儘管這一選擇有些隨意,但它成為了通用標準——每個現代作業系統、程式語言和協定都使用同一個參考點。

Unix 時間轉換:如何將紀元轉換為可讀日期

使用上方的「紀元 → 日期」標籤:貼上任意 Unix 時間戳記,選擇你的時區,然後點擊「轉換」。工具會以 ISO 8601(帶時區偏移)、UTC 字串、友善的長格式以及相對時間指示器顯示結果。你也可以用「日期 → 紀元」標籤進行反向轉換。

  • ISO 8601 — 標準的機器可讀格式:2023-11-15T06:13:20+00:00
  • UTC 字串 — 帶星期、便於閱讀:Wed, 15 Nov 2023 06:13:20 GMT
  • 友善格式 — 地區風格:Wednesday, November 15, 2023 at 6:13:20 AM UTC
  • 相對時間 — 按上下文:1 年前

次秒級精度、單調時間與現代 API

現代程式碼用到的不只是秒和毫秒,還會處理微秒和奈秒。程式碼會區分掛鐘時間和單調時間。較新的 JavaScript Temporal API 直接公開奈秒精度的時刻。其底層仍然是 POSIX time_t。在帶符號的 32 位元 time_t 上,Y2038 溢位限制依然適用。

  • 秒(10 位)— 標準的 POSIX time_t 格式
  • 毫秒(13 位)— JavaScript Date 和大多數 Web API
  • 微秒(16 位)— 高解析度日誌、Chrome/WebKit 時間戳記、Postgres 時間戳記精度 6
  • 奈秒(19 位)— Temporal.Instant.epochNanoseconds (BigInt)、Java Instant、Go time.UnixNano()
  • 掛鐘時間與單調時間:儲存時刻用 Date.now() / time();測量時長用 performance.now() / clock_gettime(CLOCK_MONOTONIC)
  • 時區縮寫(EST、PST、JST、IST、CST)有歧義——在程式碼中一律使用 America/New_York 或 Asia/Tokyo 這樣的 IANA 名稱
  • 32 位元系統上的 POSIX time_t 會在 2038-01-19 溢位;64 位元 time_t 是現代標準

目前 Unix 時間戳記,即時更新

本頁頂部的時鐘每秒更新一次,以秒顯示目前紀元、以毫秒顯示目前時間,並顯示日期。同一時刻以五種方式呈現:10 位紀元秒、13 位毫秒、ISO 8601、UTC 字串以及友善的本地格式。同一個轉換器還兼作日期時間計算機——可用作時區之間、或紀元與人類日期之間的時間日期切換工具。

  • 帶秒和日期的即時時鐘 / 目前紀元時間 / 目前 Unix 時間 —— 在頁面頂部即時顯示
  • 目前毫秒時間(毫秒)—— 與 JavaScript 中 Date.now() 相同的時刻
  • 目前時間戳記 / 目前 Unix 時間戳記 —— 標準的 10 位 Unix 秒值
  • 本週 —— 要以紀元求本週開始,請使用參考頁的年/月/週時間戳記
  • 日期時間計算機 —— 對於「日期 + N 天 = 紀元?」,用算出的掛鐘值配合「日期 → 紀元」標籤
  • 時間日期切換器 —— 在轉換器中選擇新時區,同一時刻的顯示隨之改變
  • Unix 到 unix(系統之間):整數相同,顯示隨時區而變
  • 時間戳記 unix time —— 同一個數字的三個名稱:時間戳記、Unix 時間、紀元時間

紀元 Unix 時間戳記轉換器 —— 快速參考值

除錯或撰寫測試時經常出現的整數紀元值。每個值都配有對應的 ISO 8601 日期時間,便於一眼核對。所有時刻均為 UTC。

  • 0 → 1970-01-01T00:00:00Z(紀元起點)
  • 86400 → 1970-01-02T00:00:00Z(紀元後一天)
  • 1000000000 → 2001-09-09T01:46:40Z(十位數里程碑)
  • 1500000000 → 2017-07-14T02:40:00Z(2017 年中參考)
  • 1700000000 → 2023-11-14T22:13:20Z(近期參考)
  • 2000000000 → 2033-05-18T03:33:20Z(未來參考)
  • 2147483647 → 2038-01-19T03:14:07Z(帶符號 32 位元整數最大值 —— Y2038 邊界)
  • 253402300799 → 9999-12-31T23:59:59Z(PostgreSQL 9999 年邊界)

在 Unix 時間戳記、日期與 UTC 之間轉換

這個轉換器在一處處理所有方向。貼上任意掛鐘值即可把日期轉換為 Unix 時間戳記,或貼上一個紀元整數得到對應的 UTC 日期時間以便解析日誌。13 位值會自動辨識為毫秒並轉換為秒。POSIX 時間只是 Unix 時間的別名——兩者操作相同。它支援秒、毫秒、微秒和 ISO 8601 字串。

  • 將時間轉換為 Unix 時間戳記 —— 貼上任意掛鐘日期,得到秒和毫秒
  • 紀元轉 UTC —— 貼上一個紀元整數,查看對應的 UTC 日期時間
  • 毫秒轉時間戳記 —— 13 位值會自動偵測為毫秒並轉換為秒
  • POSIX 時間轉換器 —— POSIX 時間只是 Unix 時間的別名;同一工具,同一操作
  • 任意方向的 Unix 時間轉換 —— 日期 ↔ 紀元、秒 ↔ 毫秒、本地 ↔ UTC

電腦系統、本地時間與 2038 年 1 月 19 日的限制

Unix 時間是全世界電腦系統使用的計時標準——從伺服器和資料庫到嵌入式裝置和作業系統。這些電腦系統在內部將時間儲存為 Unix 整數,然後為檢視者轉譯成本地時間。這一慣例有一個著名的限制:在 2038 年 1 月 19 日 03:14:07 UTC,帶符號的 32 位元 Unix 時間戳記會溢位。現代 64 位元電腦系統不受影響。遺留的 32 位元部署在該日期之前仍需注意。

  • 以 Unix 整數計時的電腦系統:Linux、macOS、Windows、BSD、iOS、Android 以及所有主流資料庫引擎
  • 本地時間與 UTC:時間戳記本身是 UTC;本地時間只是眾多可能呈現方式之一
  • 2038 年 1 月 19 日 03:14:07 UTC —— 當帶符號 32 位元 Unix 時間戳記達到 2,147,483,647 並溢位時
  • 64 位元電腦系統將安全範圍擴展到約公元 2920 億年——遠超任何實際顧慮
  • 本地時間取決於時區偏移和夏令時規則——只在顯示時套用,絕不在儲存時套用

本轉換器如何計算

本頁上的每一次轉換都完全在你的瀏覽器中執行,採用 Unix 時間的標準 POSIX 定義——自 1970-01-01 00:00:00 UTC 起的秒數,不含閏秒。你輸入的時間戳記絕不會傳送到伺服器;計算在本地由 JavaScript 完成。時間以 UTC 計算,僅在顯示時才轉譯為你所選的時區。