時間戳轉換

線上時間戳轉換工具,支援時間戳和日期時間的相互轉換,多時區支援

當前時間戳

時間戳轉日期時間

轉換結果將顯示在這裡

日期時間轉時間戳

轉換結果將顯示在這裡

時間戳知識

時間計算的基石


一、Unix 時間戳:全球統一的"時間語言"

定義
Unix 時間戳(Unix Timestamp)是從 1970年1月1日 00:00:00 UTC 起經過的秒數(不考慮閏秒)。它是計算機系統中跨平臺、跨時區的時間表示標準。

權威定義來源

  • 根據 POSIX 標準 (IEEE Std 1003.1-2017)[1],Unix 時間戳被定義為"自紀元(Epoch)起的秒數"。
  • Linux time.h 手冊頁[2] 明確其資料型別為 time_t(通常為有符號32位或64位整數)。

核心特性

  1. 時區無關性:同一時刻全球任何位置的 Unix 時間戳相同。
    示例:北京時間 2023-10-01 08:00:00(UTC+8)與 UTC 時間 2023-10-01 00:00:00 的時間戳均為 1696118400
  2. 閏秒忽略:不包含閏秒調整,與 國際原子時(TAI) 存在約27秒偏差(截至2023年)[3]
  3. 32位溢位風險:2038年1月19日,32位時間戳將溢位歸零("2038年問題")[4]

二、GMT 與 UTC:從天文觀測到原子時鐘

儘管常被混用,GMT(格林尼治標準時間)UTC(協調世界時) 有本質差異:

維度 GMT(Greenwich Mean Time) UTC(Coordinated Universal Time)
定義 基於地球自轉(天文觀測) 基於原子鐘(銫原子振盪週期),與 GMT 誤差不超過0.9秒
調整 無週期性校準 通過閏秒(Leap Second)與地球自轉同步[5]
權威管理 原由英國格林尼治天文臺定義,現為時區標識(UTC+0) 國際電信聯盟(ITU)[6]國際計量局(BIPM)[7] 維護

關鍵事實

  • GMT 的淡出:1972年 UTC 取代 GMT 成為國際時間標準[8],但 "GMT" 仍廣泛用於表示 UTC+0時區
  • 時區縮寫規範:根據 IANA 時區資料庫[9]Etc/UTCEtc/GMT 均表示零時區,但後者符號相反(如 GMT+1 實際表示 UTC-1)。

三、時區轉換:從時間戳到本地時間

時間戳 → 本地時間的公式
本地時間 = Unix 時間戳 + 時區偏移 + 閏秒補償

權威工具與標準

  1. IANA 時區資料庫(原 Olson 資料庫)[9]
    • 包含全球時區規則(如 Asia/Shanghai 表示 UTC+8)。
    • 被 Linux、macOS、Java 等系統預設整合。
  2. ISO 8601 標準[10]
    • 規定時間格式 YYYY-MM-DDTHH:mm:ss±HH:mm(如 2023-10-01T08:00:00+08:00)。
  3. RFC 3339[11]
    • 定義網際網路時間格式(相容 ISO 8601),要求顯式時區偏移。

示例程式碼(Python)

import datetime

timestamp = 1696118400
# 轉換為 UTC 時間
utc_time = datetime.datetime.utcfromtimestamp(timestamp)  # 2023-10-01 00:00:00
# 轉換為北京時間(UTC+8)
local_time = datetime.datetime.fromtimestamp(timestamp, datetime.timezone(datetime.timedelta(hours=8)))  # 2023-10-01 08:00:00+08:00

四、閏秒:時間戳的"例外處理"

閏秒機制

  • 國際地球自轉服務(IERS)[5] 根據地球自轉變化決定是否插入閏秒(通常在6月或12月31日)。
  • 截至2023年,UTC 與 TAI 的累計閏秒差為 37秒[3]
系統相容性 系統/語言 閏秒處理方式 官方說明
Linux 核心支援閏秒插入,但需手動配置 Linux Kernel Leap Second Handling
Java java.time API 忽略閏秒 Oracle Java Docs
Google 公共 NTP 閏秒插入時採用"閏秒稀釋"策略 Google Leap Smearing

五、權威參考資料


六、總結

  • Unix 時間戳是跨時區程式設計的基石,需警惕2038年溢位問題。
  • UTC 為現代國際標準時間,GMT 僅作為時區標識(UTC+0)。
  • 時區轉換依賴 IANA 資料庫,閏秒處理需參考 IERS 公告

掌握這些概念,可確保在全球化系統中精準控制時間邏輯,如金融交易、日誌同步等關鍵場景。

參考資料

[1] POSIX 時間標準: IEEE Std 1003.1-2017
[2] Linux time.h 手冊頁: 終端執行 man 3 time
[3] 國際計量局(BIPM)閏秒公告: TAI-UTC 歷史
[5] 國際地球自轉服務(IERS): 閏秒公告
[6] 國際電信聯盟(ITU): UTC 定義
[9] IANA 時區資料庫: 官方倉庫
[11] RFC 3339 時間格式: RFC 3339 規範