首頁/部落格/Unix 時間戳是什麼?開發者必備的時間戳轉換教學|線上時間戳工具
指南

Unix 時間戳是什麼?開發者必備的時間戳轉換教學|線上時間戳工具

完整解說 Unix 時間戳(Unix Timestamp)的概念、原理和應用。了解什麼是 Epoch Time、如何在不同程式語言中使用時間戳、2038 年問題,以及如何使用線上工具快速轉換時間戳。

奧特線上工具2026/2/1315 分鐘閱讀1 次瀏覽
Unix 時間戳是什麼?開發者必備的時間戳轉換教學|線上時間戳工具

Unix 時間戳是什麼?開發者必備的時間戳轉換教學

什麼是 Unix 時間戳?

Unix 時間戳(Unix Timestamp),也稱為 Epoch Time 或 POSIX Time,是一種用單一數字表示時間的方式。它定義為從 1970 年 1 月 1 日 00:00:00 UTC(稱為 Unix 紀元,Unix Epoch)到某個時間點所經過的秒數

例如:

  • 0 = 1970-01-01 00:00:00 UTC
  • 1000000000 = 2001-09-09 01:46:40 UTC
  • 1700000000 = 2023-11-14 22:13:20 UTC

這種表示方式的優點是簡單、統一、不受時區影響,因此被廣泛應用於程式開發、資料庫設計和 API 通訊中。


為什麼開發者需要了解時間戳?

時間戳的優勢

優勢說明
時區無關時間戳是基於 UTC 的絕對值,不受時區影響
易於比較兩個時間戳可以直接用數字比較大小
易於計算時間差就是兩個數字的差值(秒數)
儲存高效只需一個整數即可表示精確的時間點
跨平台所有程式語言和作業系統都支援

常見應用場景

  • API 通訊:許多 API 使用時間戳傳遞時間資訊
  • 資料庫:儲存事件發生的精確時間
  • 快取控制:判斷快取是否過期
  • 日誌記錄:記錄事件的精確時間
  • 排序:按時間順序排列數據

秒級 vs 毫秒級時間戳

需要特別注意的是,不同系統使用不同精度的時間戳:

類型位數範例常見於
秒級(s)10 位1700000000Unix/Linux、PHP、Python
毫秒級(ms)13 位1700000000000JavaScript、Java、API
微秒級(μs)16 位1700000000000000高精度系統

我們的時間戳轉換器 [blocked]會自動偵測您輸入的時間戳精度,無需手動選擇。


各程式語言中的時間戳操作

JavaScript

javascript
// 取得當前時間戳(毫秒)
Date.now()                    // 1700000000000
new Date().getTime()          // 1700000000000

// 取得當前時間戳(秒)
Math.floor(Date.now() / 1000) // 1700000000

// 時間戳轉日期
new Date(1700000000000)       // Tue Nov 14 2023 ...
new Date(1700000000 * 1000)   // 秒級需乘以 1000

// 日期轉時間戳
new Date("2023-11-14").getTime() // 毫秒級

Python

python
import time
from datetime import datetime

# 取得當前時間戳(秒,浮點數)
time.time()                    # 1700000000.123

# 時間戳轉日期
datetime.fromtimestamp(1700000000)  # 本地時間
datetime.utcfromtimestamp(1700000000)  # UTC 時間

# 日期轉時間戳
datetime(2023, 11, 14).timestamp()

PHP

php
// 取得當前時間戳
time();                        // 1700000000

// 時間戳轉日期
date("Y-m-d H:i:s", 1700000000);

// 日期轉時間戳
strtotime("2023-11-14");

時區與時間戳

時間戳本身是基於 UTC 的,不包含時區資訊。當您將時間戳轉換為人類可讀的日期時間時,需要指定時區。

常見時區對照

時區UTC 偏移主要城市
UTC+0:00倫敦(冬季)
CST+8:00台北、北京、香港
JST+9:00東京
EST-5:00紐約
PST-8:00舊金山
CET+1:00巴黎、柏林

使用我們的時間戳轉換器 [blocked],您可以同時查看多個時區的對應時間。登入會員後可以添加無限數量的時區,並使用批量轉換功能。


2038 年問題(Y2K38)

什麼是 2038 年問題?

許多舊系統使用 32 位元有符號整數儲存 Unix 時間戳。32 位元有符號整數的最大值是 2,147,483,647,對應的時間是 2038 年 1 月 19 日 03:14:07 UTC。超過這個時間後,32 位元時間戳將溢位,可能導致系統錯誤。

解決方案

現代系統已經普遍採用 64 位元整數儲存時間戳,可以表示到約 2920 億年後的時間,因此不再受此限制。但一些嵌入式系統和舊軟體仍可能受到影響。


常見問題(FAQ)

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

1970 年 1 月 1 日被選為 Unix 紀元,是因為 Unix 作業系統在 1970 年代初期開發,選擇了一個接近當時的時間點作為起始點。

時間戳可以是負數嗎?

可以。負數的時間戳表示 1970 年 1 月 1 日之前的時間。例如,-86400 表示 1969 年 12 月 31 日。

如何快速判斷時間戳是秒級還是毫秒級?

看位數:10 位數是秒級,13 位數是毫秒級。我們的時間戳轉換器 [blocked]會自動偵測。

時間戳和 ISO 8601 日期格式有什麼區別?

時間戳是一個數字,ISO 8601 是一個字串格式(如 2023-11-14T22:13:20Z)。時間戳更適合程式處理,ISO 8601 更適合人類閱讀和 API 通訊。


相關工具推薦

  • 時間戳轉換器 [blocked]:Unix 時間戳與日期時間互轉
  • URL 編碼/解碼器 [blocked]:處理 API 請求中的特殊字元
  • JSON 格式化工具 [blocked]:格式化包含時間戳的 JSON 數據
  • Hash 計算器 [blocked]:計算數據的 Hash 值

立即使用我們的免費時間戳轉換器 [blocked],快速完成時間戳和日期的互相轉換!

立即試用相關工具

馬上體驗文章中提到的功能