Unix 時間戳轉換器

當前時間

當前時間戳:

轉換工具

時間戳:
時間(YYYY-MM-DD HH:MM:SS):
時間:

常見問題

什麼是 Unix 時間戳?

Unix 時間戳(也稱為 POSIX 時間或 Epoch 時間)是一種追蹤時間的方式,它計算自 1970 年 1 月 1 日 00:00:00 UTC(Unix 紀元)以來經過的秒數。它被廣泛用於計算機系統和編程語言中,因為它提供了一種與時區無關的時間表示方式。

為什麼 Unix 時間從 1970 年開始?

1970 年 1 月 1 日被選為 Unix 紀元是因為歷史原因。當 Unix 操作系統在 1960 年代末和 1970 年代初開發時,開發者需要一個任意的起點。他們選擇了 1970 年 1 月 1 日午夜 UTC,因為它是一個方便的近期日期,不需要處理負時間戳,且使時間值保持在一個合理的數值範圍內。

秒和毫秒時間戳有什麼區別?

標準 Unix 時間戳以秒為單位,而毫秒時間戳(JavaScript 常用)包含額外的三位精度。例如,秒時間戳 1609459200 相當於毫秒時間戳 1609459200000。處理不同系統時,請檢查它們使用哪種格式以避免轉換錯誤。

什麼是 2038 年問題?

2038 年問題(也稱為 Y2K38 或 Unix 千年蟲)將在 2038 年 1 月 19 日發生,當 Unix 時間戳超過 32 位帶符號整數可表示的最大值(2,147,483,647)時發生。使用 32 位時間戳的系統將溢出並回繞到負數,可能導致系統故障。現代系統通過使用 64 位整數來解決這個問題。

如何在代碼中獲取當前 Unix 時間戳?

以下是在流行編程語言中獲取當前時間戳的方法:

// JavaScript
Math.floor(Date.now() / 1000)

# Python
import time
int(time.time())

// Java
System.currentTimeMillis() / 1000

// PHP
time()

// Go
time.Now().Unix()

// C#
DateTimeOffset.UtcNow.ToUnixTimeSeconds()

如何將 Unix 時間戳轉換為可讀日期?

在 JavaScript 中,使用 new Date(timestamp * 1000)(乘以 1000 是因為 JavaScript 使用毫秒)。在 Python 中,使用 datetime.fromtimestamp(timestamp)。大多數編程語言都有類似的內建函數來進行這種轉換。

// JavaScript
new Date(1704067200 * 1000).toISOString()
// Result: '2024-01-01T00:00:00.000Z'

# Python
from datetime import datetime
datetime.fromtimestamp(1704067200)

// PHP
date('Y-m-d H:i:s', 1704067200)

Unix 時間戳如何處理時區?

Unix 時間戳本質上是與時區無關的——它們始終代表 UTC 時間。當顯示或轉換時間戳時,您需要應用適當的時區偏移。這使得 Unix 時間戳非常適合在系統之間存儲和傳輸時間數據,無論用戶位於哪個時區。

Unix 時間戳的常見用途有哪些?

Unix 時間戳廣泛用於:數據庫記錄創建/修改時間、API 響應和請求超時、日誌文件時間記錄、緩存過期時間、會話管理、事件調度。它們的簡單性和與時區無關的特性使其成為編程中時間操作的首選。

什麼是 Unix/Epoch 時間戳轉換器?

Unix 時間戳轉換器(也稱為 Epoch 轉換器)是開發者必備的線上工具,用於在 Unix 紀元時間和人類可讀的日期格式之間進行轉換。Unix 時間表示自 1970 年 1 月 1 日 00:00:00 UTC(Unix 紀元)以來經過的秒數。這種標準化的時間格式在作業系統、資料庫、程式語言和 Web API 中被廣泛使用,因為它提供了一個單一的、無歧義的數字來表示時間中的任何時刻——不受時區和夏令時間的影響。我們的免費線上轉換器支援秒級(10 位)和毫秒級(13 位)時間戳、即時時鐘顯示,以及時間戳和格式化日期之間的雙向轉換。

如何使用 Unix 時間戳轉換器

  1. 在「當前時間」部分查看當前 Unix 時間戳——點擊「開始」可即時更新,或點擊「重新整理」獲取快照。
  2. 將時間戳轉換為日期:貼上 10 位(秒)或 13 位(毫秒)時間戳並點擊轉換。結果將以本地時區顯示。
  3. 將日期轉換為時間戳:輸入日期字串如 "2024-01-01 00:00:00",點擊「轉為時間戳」。
  4. 使用單獨的年/月/日/時/分/秒輸入欄位進行精確的日期到時間戳轉換。

Unix 時間戳的常見使用情境

  • 資料庫除錯 — 檢查和解碼 MySQL、PostgreSQL、MongoDB 或 SQLite 中以整數儲存的時間戳欄位。
  • API 開發 — 解析和產生 REST API 請求/回應、JWT 權杖和 OAuth 流程中的紀元時間戳。
  • 日誌分析 — 將伺服器日誌中的時間戳轉換為可讀日期,用於除錯生產問題。
  • 排程工作 — 為工作排程器、快取 TTL 值和憑證到期時間計算 Unix 時間戳。
  • 資料遷移 — 在使用紀元時間戳和 ISO 8601 字串的系統之間進行格式轉換。
  • 維運監控 — 解碼 Prometheus 指標、Grafana 儀表板和 CI/CD 管線中的時間戳。
  • 行動應用開發 — 在 iOS 和 Android 中使用 Unix 時間戳實現跨平台一致性。
  • 區塊鏈與加密貨幣 — 解讀區塊時間戳、交易時間和智能合約時間鎖。

Unix 時間的關鍵概念

紀元(1970 年 1 月 1 日)

Unix 紀元是所有 Unix 時間戳的參考起點。值 0 代表 1970 年 1 月 1 日午夜 UTC。

秒 vs 毫秒

傳統 Unix 時間戳使用秒(10 位數)。JavaScript、Java 等使用毫秒(13 位數)。本工具根據位數自動偵測格式。

UTC 與時區

Unix 時間戳始終基於 UTC。顯示為日期時,轉換使用您的本地時區。這使時間戳成為全球化應用中儲存時間的理想選擇。

2038 年問題

使用 32 位元有符號整數的系統將在 2038 年 1 月 19 日溢位。現代 64 位元系統已解決此問題。

閏秒

Unix 時間不計入閏秒——每天固定為 86,400 秒。這意味著 Unix 時間可能與天文時間略有偏差。

負時間戳

紀元之前(1970 年之前)的時間戳用負數表示。例如,-86400 代表 1969 年 12 月 31 日。

時間戳除錯清單

秒級 vs 毫秒級

10 位數字通常是秒級時間戳,13 位數字通常是毫秒級時間戳。JavaScript Date 需要毫秒,因此秒級值要先乘以 1000。

UTC 與本地顯示

時間戳表示一個基於 UTC 的絕對時刻。換到不同時區查看時,顯示出的日曆日期和時間可能不同。

夏令時間切換

夏令時間切換附近,本地午夜或某個小時可能發生跳變。建議儲存 UTC 時間戳,只在顯示時轉換為本地時間。

日誌與 API 排查

除錯 API 或日誌時,把原始時間戳、識別出的單位、ISO 8601 UTC 輸出和本地顯示一起比對,可以更快發現單位或時區錯誤。

為什麼使用我們的線上 Unix 時間戳工具?

  • 即時雙向轉換——在同一頁面完成時間戳與日期的互相轉換,無需重新整理頁面。
  • 自動偵測秒/毫秒——貼上任何 10 位或 13 位時間戳,自動獲得正確結果。
  • 即時時鐘顯示——即時觀察當前 Unix 時間戳跳動,便於監控和測試。
  • 多格式輸入——支援格式化字串和年/月/日/時/分/秒單獨輸入。
  • 100% 用戶端處理——所有轉換在瀏覽器中完成,確保完全隱私。
  • 開發者友善的程式碼範例——查看多種程式語言中的 Unix 時間戳操作方法。
  • 行動裝置響應式設計——在桌面、平板或手機上舒適使用。