epoch 轉日期轉換器
線上把任何 Unix 時間戳轉換為可讀日期。貼上一個值,轉換器會偵測秒還是毫秒,並在任意時區顯示 ISO 8601、UTC、本地日期、時間、星期和相對時間。
從 Unix 時間戳記得到日期
從時間戳記得到日期正是本工具所做的。如果你需要從 Unix 時間戳記得到日期——即取這個整數並讀出日曆上的日、時、分——把值貼到上面的轉換器中。頁面會自動偵測 10 位的秒和 13 位的毫秒,並以 ISO 8601、UTC 以及你選擇的任意 IANA 時區顯示得到的日期。在程式碼中,同樣的操作在每種主流語言裡都是一行。
- JavaScript: new Date(1700000000 * 1000).toISOString() → "2023-11-14T22:13:20.000Z"
- Python: datetime.fromtimestamp(1700000000, tz=timezone.utc).isoformat()
- PHP: gmdate('c', 1700000000)
- Shell: date -u -d @1700000000 (Linux/macOS coreutils)
將 Unix 時間戳記轉換為可讀日期
紀元時間對系統來說緊湊而可靠,但肉眼難以查看。本頁專注於時間戳記到日期的方向:輸入以秒為單位的 10 位 Unix 時間戳記,或以毫秒為單位的 13 位時間戳記,選擇時區,將同一時刻讀作普通的日曆日期。
各輸出格式的含義
轉換器會回傳幾種常見的日期格式,便於你複製工作流所需的那一種。
- ISO 8601 包含本地 UTC 偏移,是 API 和日誌最安全的格式
- UTC 字串以協調世界時顯示同一時刻
- 友善的本地輸出適合查看日程或除錯事件的人
- 相對時間有助於確認時間戳記在過去還是未來
秒與毫秒
大多數後端語言使用 Unix 秒,而 JavaScript 和許多瀏覽器 API 使用毫秒。轉換器根據數字的大小偵測單位,從而避免把現代時間戳記轉換成 1970 年附近日期這一常見錯誤。
除錯時間戳記輸入
如果轉換後的日期顯得過於久遠或在很遠的未來,問題通常出在時間戳記單位上。現代以秒計的 Unix 時間戳記有 10 位,而現代以毫秒計的時間戳記有 13 位。API 有時會把兩者都簡單地標為紀元時間,所以在把值複製到日誌、SQL 查詢或測試夾具之前,請先確認單位。
- 像 1700000000 這樣的值是秒,應轉換為 2023 年的日期
- 像 1700000000000 這樣的值是毫秒,可直接傳給 JavaScript Date
- 如果日期落在 1970 年 1 月,你很可能在該用毫秒的地方用了秒
- 如果日期落在幾萬年之外,你很可能又把毫秒乘了一次
ISO 8601、RFC 3339 與時區感知輸出
本轉換器回傳的 ISO 8601 字串更確切地說是 RFC 3339——JSON API 和現代網際網路協定所用的 IETF 子集。Unix 時間戳記是一個精確時刻;把它轉換成掛鐘日期需要選擇時區。Intl.DateTimeFormat 是在 JavaScript 中產生本地化輸出字串的正確方式。
- 規範 UTC 形式:2024-03-15T14:30:00Z(ISO 8601 的 RFC 3339 子集)
- 偏移形式:2024-03-15T14:30:00+09:00 —— 在機器可讀輸出中絕不要省略 Z 或偏移
- 時刻與掛鐘時間:Unix 時間戳記在任何地方都是同一時刻;掛鐘讀數取決於所選的 IANA 時區
- 機器可讀輸出應優先使用 ISO 8601 / RFC 3339
- 在 JavaScript 中面向人的輸出,使用 Intl.DateTimeFormat 以取得按語言的月份名稱、12 小時與 24 小時制以及星期格式
- 在 Java 中:Instant.toString() 直接輸出 ISO 8601;ZonedDateTime.toString() 包含偏移
- 在 Python 中:對帶時區的 datetime 呼叫 datetime.isoformat() 回傳 RFC 3339
相關文章
epoch to time、epoch to timestamp —— 都是同一種轉換
不同的搜尋表述 ——「epoch to time」「epoch to timestamp」「convert epoch to time」「epoch time to date」「convert unix timestamp to time」「convert unix time to time」「convert from unix timestamp」—— 都描述本頁執行的操作:取一個 10 位或 13 位的 Unix 整數(也稱 epoch unix timestamp、epoch unix time 或 unix time_t),回傳對應的日曆日期。輸出以 ISO 8601、UTC 以及時區感知的本地形式顯示,涵蓋了「epoch time to date」「unix to timestamp」或「epoch timestamp converter」的典型意圖。
- epoch to time / epoch to timestamp / epoch time to date / convert epoch to time
- convert unix timestamp to time / convert unix time to time
- epoch unix time converter / epoch unix timestamp / epoch unix time
- epoch convertor(拼字錯誤)/ epoc time(拼字錯誤)/ epochtime / epochconverter
- POSIX time_t 和 unix time_t 是本頁接受的同一個 32 位或 64 位整數
Linux 時間轉換器、Linux 時間戳記轉換器與 ISO 8601 日期格式
在 Linux 和 macOS 上,同樣的轉換已內建於 shell。人們將其搜尋為「linux time converter」「linux time conversion」或「linux timestamp converter」—— 都指本頁用介面封裝的同一個 coreutils date(1) 命令。輸出格式與 JSON API、HTTP 標頭和現代資料庫所用的 ISO 8601 日期格式 / RFC 3339 標準一致。
- Linux 時間轉換器 / linux timestamp converter —— epoch → 日期:date -u -d @1700000000
- Linux 時間轉換 —— 日期 → epoch:date -u -d "2023-11-14 22:13:20 UTC" +%s
- Linux 上的目前紀元時間:date +%s(秒)或 date +%s%3N(毫秒)
- ISO 8601 日期格式 / RFC 3339:2023-11-14T22:13:20Z(Z = UTC)或 2023-11-14T22:13:20+09:00(偏移)
- macOS coreutils(BSD date)使用不同的旗標:date -u -r 1700000000(注意是 -r 而非 -d @)
- GNU date(1) 手冊頁記錄了每個輸出格式指令 —— %s 表示紀元秒,%Y-%m-%d 表示 ISO 日期
更多變體:epoch to datetime、unix time to datetime、unix epoch to date、datetime to milliseconds
以下所有表述都描述本頁的同一種轉換:「epoch to datetime」「epoch time to datetime」「epoch to time converter」「unix time to datetime」「unix time to utc」「unix epoch to date」「convert unix time to datetime」「datetime conversions」「datetime to milliseconds」「date to milliseconds」和「iso 8601 datetime format」。輸出已經包含帶 UTC 偏移的 ISO 8601 datetime 格式,這是規範的機器可讀形式。
- Epoch to datetime / epoch time to datetime / epoch to time converter —— 貼上一個 Unix 整數,得到對應的 datetime
- Unix time to datetime / convert unix time to datetime —— 同一操作;SQL/Python/Java 的「datetime」一詞與介面「date」輸出含義相同
- Unix time to UTC / unix time to utc —— 頁面輸出已包含以 UTC 呈現的同一時刻
- Unix epoch to date / unix epoch to date / unix date stamp —— 同一轉換;「unix date stamp」是口語化同義詞
- Datetime to milliseconds / date to milliseconds —— JavaScript:new Date("2024-03-15T14:30:00Z").getTime() 回傳 13 位的毫秒時間戳記
- Datetime conversions / datetime conversions —— 對同一時刻,date ↔ datetime 是空操作;兩者指同一時刻
- ISO 8601 datetime format / iso 8601 datetime format —— 例如 2024-03-15T14:30:00+00:00(帶偏移)或 2024-03-15T14:30:00Z(UTC 短形式)
這種轉換的其他名稱
同樣的紀元到可讀日期操作有許多搜尋方式:timestamp to date、date from timestamp、convert timestamp to datetime、unix to datetime、date from unix timestamp、ms to date、time from epoch。它們都描述本頁執行的操作——貼上一個整數紀元值,讀出日曆 datetime。
- 同義詞:timestamp to datetime、unix to datetime、epoch to datetime、ms to date
- 反方向在 /date-to-epoch —— 貼上一個日曆日期,得到整數
- 常見混淆:「datetime」與「date」—— 對同一時刻是同一個值,只是呈現方式不同
紀元時間、可讀日期與本地時區
每個 Unix 時間戳記都是一個時間點——自 1970 年 1 月 1 日 00:00:00 UTC 起以秒計量的精確時刻。要把這個整數變成可讀日期,你需要選擇一個本地時區,因為同一時間點會因檢視者所在位置而顯示為不同的本地時間。現代作業系統(Linux、macOS、Windows、BSD)都在內部將掛鐘存為 Unix 紀元,並在顯示時格式化為可讀日期。
- 1970 年 1 月 1 日 00:00:00 UTC 是 Unix 紀元 —— 每個 Unix 時間戳記計數起點的時間零點
- 可讀日期取決於所選的本地時區 —— 同一時間點,不同的本地時間
- 現代作業系統(Linux、macOS、Windows、BSD)都在內部將掛鐘存為 Unix 紀元,僅在顯示時轉換為本地時間
- 本地時區正是把抽象的時間點變成與檢視者本地時間相符的可讀日期的關鍵