當前 Unix 時間戳:紀元時鐘、UTC 時間與即時 Unix 時間

當前 Unix 時間戳是此刻自 1970-01-01 00:00:00 UTC 以來的秒數。了解紀元時鐘如何運作、為什麼 UTC 是基準,以及如何在常見語言中取得當前時間戳。

目前 Unix 時間戳的含義

目前 Unix 時間戳是自 1970 年 1 月 1 日 00:00:00 UTC 起經過的整秒數。即時 epoch 時鐘每秒遞增一次。如果時鐘顯示毫秒,則每秒遞增多次,通常是 13 位的值。

為什麼以 UTC 為基準

Unix 時間以 UTC 為基礎,使不同時區的電腦能就同一時刻達成一個數值上的一致。本地時間只是顯示層。兩個使用者在同一時刻載入頁面時,即使一個看到早晨、另一個看到傍晚,他們也共享相同的目前 Unix 時間戳。

如何取得目前 Unix 時間戳

每種常見語言都有取得目前 Unix 時間的簡短方法。

  • JavaScript 毫秒:Date.now()
  • JavaScript 秒:Math.floor(Date.now() / 1000)
  • Linux 秒:date +%s
  • Python 秒:int(time.time())
  • PHP 秒:time()
  • Go 秒:time.Now().Unix()
  • PostgreSQL 秒:EXTRACT(EPOCH FROM now())

目前時間戳 vs 格式化時間

時間戳適合排序、比較、儲存與 API 負載。格式化日期適合人閱讀。大多數應用儲存時間戳或 UTC 日期時間,只有在向使用者顯示時才進行格式化。

  • 在資料庫與日誌中儲存 UTC 或 Unix 時間戳
  • 以使用者所在時區顯示本地時間
  • 當人需要檢查 API 負載時使用 ISO 8601
  • 當系統需要精簡的數值時使用 Unix 秒或毫秒

目前 Unix 時間戳常見問題

目前 Unix 時間戳取決於我的時區嗎?
不會。時間戳以 UTC 為基準,對同一時刻在全球都相同。
為什麼我的目前時間戳是 13 位?
13 位的目前時間戳通常是毫秒。除以 1000 即可得到 Unix 秒。
哪裡可以看到即時 Unix epoch 時鐘?
轉換器首頁顯示即時 epoch 時鐘,並可將該值轉換為 UTC 或本地時間。
目前 Unix 時間戳在每種語言中都一樣嗎?
就時刻而言一樣,但單位不一定。JavaScript 的 Date.now() 與 Java 的 System.currentTimeMillis() 回傳毫秒,而 Python time.time()、PHP time()、Go Unix() 與 Linux date +%s 回傳秒。比較或儲存前請確認單位。