Unix 時間戳記轉換

Unix 時間戳記與日期時間互轉,自動判斷秒、毫秒、微秒、奈秒,可選擇任何時區,並即時顯示目前的時間戳記。

目前時間

秒
毫秒

時間戳記 → 日期時間

日期時間 → 時間戳記

例如 2023-11-15 06:13:20 或 2023-11-15T06:13:20.123Z。沒有寫 Z 或 +08:00 這類時差時,以上方選擇的時區為準。

Unix 時間戳記是什麼?

Unix 時間戳記是從 1970 年 1 月 1 日 00:00:00 UTC 起算經過的秒數,和時區無關:同一個時刻在台北和倫敦的時間戳記都一樣,只是顯示成當地時間時不同。資料庫、API 和日誌常用它來記錄時間。

如何使用

  1. 在「時間戳記 → 日期時間」貼上時間戳記,下方會立即顯示日期時間、ISO 8601、UTC、星期與相對時間。
  2. 在「日期時間 → 時間戳記」輸入日期時間,會換算成秒、毫秒、微秒、奈秒。
  3. 用上方的「時區」選擇顯示與換算時使用的時區,預設為你電腦的時區。

秒、毫秒、微秒、奈秒怎麼分?

工具會依位數自動判斷:目前的時間戳記以秒表示是 10 位,毫秒 13 位、微秒 16 位、奈秒 19 位。JavaScript 的 Date.now() 與 Java 的 System.currentTimeMillis() 是毫秒;PHP 的 time() 與 Python 的 int(time.time()) 是秒。判斷錯誤時可以在「單位」手動指定。

範例

時間戳記 1700000000(秒)在台北時區(UTC+8)是:

2023-11-15T06:13:20+08:00

換成 UTC 則是:

2023-11-14T22:13:20Z

常見問題

為什麼換算出來差了 8 小時?

時間戳記本身是 UTC。如果程式把它當成 UTC 顯示,台北時間就會少 8 小時;反過來,把台北時間當成 UTC 換算,時間戳記就會多 8 小時。請確認上方選擇的時區,或在日期後面直接寫上 +08:00、Z。

奈秒會失去精度嗎?

不會。JavaScript 的數字只能精確表示到約 16 位,19 位的奈秒時間戳記直接轉換會被改動;本工具以大整數計算,奈秒的每一位都會保留。

可以輸入 1970 年以前的時間嗎?

可以,1970 年以前的時間戳記是負數,例如 -86400 是 1969-12-31 00:00:00 UTC。

2038 年問題是什麼?

以 32 位元有號整數存秒數的系統,最大只能到 2147483647,也就是 2038-01-19 03:14:07 UTC,之後會溢位變成負數。改用 64 位元整數或毫秒即可避免。