Unix 時間戳轉換器
在 Unix 時間戳和可讀日期之間轉換。即時紀元時鐘每秒更新。貼上任何 10 位(秒)或 13 位(毫秒)時間戳,即可轉換到任意時區。
什麼是 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 計算,僅在顯示時才轉譯為你所選的時區。