日期轉 epoch:把時間轉換為 Unix 時間戳或紀元時間
學習如何把人類的日期和時間轉換為紀元時間、Unix 時間戳秒、Unix 時間戳毫秒或 ISO 輸出。涵蓋時區選擇、UTC 轉換、API 負載和常見錯誤。
日期轉 epoch 是什麼意思
日期轉 epoch 接受一個可讀日期、時刻與時區,回傳一個數字時間戳。該數字在各地都表示同一個瞬間。例如 2026-01-01 00:00:00 UTC 轉換為 Unix 秒 1767225600。
時區是輸入的一部分
像 2026-01-01 00:00 這樣的本地時間,沒有時區就不完整。UTC、紐約、洛杉磯、倫敦與東京的午夜是不同的瞬間,因此是不同的 epoch 時間戳。把時間轉換為 Unix 時間戳前,務必先選擇時區。
- 2026-01-01 00:00 UTC = 1767225600 秒
- 2026-01-01 00:00 America/New_York = 1767243600 秒
- 2026-01-01 00:00 America/Los_Angeles = 1767254400 秒
- 2026-01-01 00:00 Asia/Tokyo = 1767193200 秒
用秒還是毫秒?
把日期轉換為 epoch 後,選擇目標系統所需的單位。後端 API、Linux 命令、PHP、Python、Go 與許多 SQL 函式通常使用 Unix 秒。JavaScript Date、瀏覽器 API 與許多分析負載通常使用 Unix 毫秒。
- Unix 秒:1767225600
- Unix 毫秒:1767225600000
- JavaScript:new Date('2026-01-01T00:00:00Z').getTime() 回傳毫秒
- JavaScript 秒:Math.floor(new Date('2026-01-01T00:00:00Z').getTime() / 1000)
- SQL 通常透過 to_timestamp() 或 FROM_UNIXTIME() 接受秒
日期轉 epoch 用在哪裡
當系統需要一個數字時間邊界而非格式化日期字串時,日期轉 epoch 就很有用。
- 需要 expires_at 或 starts_at 值的 API 測試
- 回填時間戳欄的資料庫遷移
- 需要起訖 epoch 邊界的分析查詢
- 以數字方式儲存執行時間的 cron、排程與佇列任務
- 帶過期時間戳的簽章 URL 與權杖
日期轉 epoch 常見問題
- 如何把時間轉換為 epoch 時間?
- 選擇日期、時刻與時區,把該瞬間轉換為 Unix 秒或毫秒。若缺少時區,結果可能相差數小時。
- timestamp 轉 epoch 和 date 轉 epoch 一樣嗎?
- 通常一樣。它指把可讀的時間戳或日期時間字串轉換為 epoch 數字。
- 應該給 API 傳送 epoch 秒還是毫秒?
- 遵循 API 文件。若寫的是 Unix timestamp,通常指秒,但面向 JavaScript 的 API 可能期望毫秒。
- 為什麼同一日期在不同時區得到不同的 epoch?
- 因為本地時鐘時間只有附上時區後才能確定一個瞬間。2026-01-01 00:00 在 UTC 是 1767225600,但在紐約是 1767243600 —— 真實時間晚 5 小時。轉換前請設定時區。
More posts
什麼是 UTC 時間?含義、偏移與轉換詳解Unix 時間轉日期:把 Unix 時間戳轉換為可讀時間紀元時間戳詳解:Unix 時間、POSIX 時間與自 1970 年起的秒epoch 轉換器指南:轉換紀元時間、Unix 時間和時間戳epoch 毫秒轉日期:轉換 13 位時間戳和 long 值當前 Unix 時間戳:紀元時鐘、UTC 時間與即時 Unix 時間2026 年初的 Unix 時間戳:1767225600 詳解JavaScript Date.now():取得與轉換 Unix 時間戳毫秒 vs 秒:讓每個應用都崩潰的單位混淆在資料庫中儲存時間戳:DATETIME vs INT vs BIGINT無需函式庫的 JavaScript 時區正確日期格式化每個開發者都發布過的 7 個 Unix 時間戳 bug紀元時間詳解:Unix 時間戳零是什麼?