繁體中文

開發者工具·Unix時間戳轉換器

UTC、GMT 和 TAI:您的時間戳實際上計算的是哪一個

· 背景

時間戳 unix 時間 時區

三個並行的時間尺度軌道,其中突出顯示了 Unix 轉換軌道
原始 ToolAcre 向量圖

GMT、UTC 和 TAI 通常被視為同義詞,但它們是具有不同歷史的三個不同的事物。這篇文章解釋了每一個以及它們中的 Unix 時間和日常轉換器實際遵循的。

一台伺服器上的三個名稱 — 日期標頭中的 GMT、日誌中的 UTC 以及研究論文中的 TAI,全部都在同一秒

伺服器可以在一個協定中顯示“GMT”,在日誌中顯示“UTC”,在科學資料中顯示另一個時間刻度。類似的時鐘標籤不具有互換性。第一個任務是識別每個欄位背後的合約,而不是在表示層中重新命名所有 UTC。

ToolAcre 的契約是明確的:Unix 秒或毫秒成為 ISO 8601 UTC 字串、可讀的 UTC 行和瀏覽器本地行。它沒有音階選擇器。在此路由相關之前,任何非 Unix 計數都必須使用其自己的權威定義進行轉換。

有用的庫存記錄每個欄位旁邊的規模和序列化。類似的標籤不應抹去來源,特別是當資料跨越科學和應用系統時。

格林威治標準時間 — 子午線的平均太陽時、其作為世界參考的歷史以及為什麼它現在是一個時區而不是標準

該大綱介紹了格林威治標準時間的歷史和現代法律用法。這些事實不存在於轉換器配置、來源或測試中。因此,本文不會透過推理將程式碼儲存庫變成歷史引用。

在操作上,如果輸入顯示 GMT,請檢查定義協定。與普通申請日期等效的時鐘標籤仍然可以包含特定的語法或政策要求。 ToolAcre 輸出 UTC 標籤,不應顯示為 GMT 解析器或格式化程式。

如果互通性取決於術語,請連結程式碼審查中的控制規範。顯示標籤絕不能默默地取代有線格式要求。

GMT 歷史和法律狀態不在儲存庫證據之內

UTC 行由 `Intl.DateTimeFormat` 和 `timeZone: "UTC"` 產生; ISO 行來自 `toISOString()`。這些呼叫證明了該介面如何標記其通用閱讀。他們沒有記錄 UTC 何時被採用或其背後的體制機制。

對於偵錯來說,該標籤足以建立獨立於目前本地區域的共用參考。比較系統之間的 ISO 字串或紀元值。如果來源使用其他尺度,請先證明這種關係,而不是假設熟悉的日期意味著相同的計數。

規範 UTC 輸出對於比較環境特別有用,因為它消除了本地區域選擇。但是,它不會轉換來自未宣告的時間尺度的輸入。

轉換器標記 UTC,但不記錄 UTC 定義的歷史記錄

國際原子時間未在代碼、配置或測試中表示。此處沒有顯示當前偏移、歷史差距或轉換演演算法。從記憶體中提供這樣一個常數正是該任務所禁止的那種微妙的時間要求。

將 TAI 標記值保留為 TAI,直到權威庫或來源對其日期執行轉換。直接將其貼為 Unix 秒會默默地應用錯誤的原點或比例,但仍可產生精美的 ISO 字串。可讀性不是驗證。

外部轉換應在變數和類型名稱中包含比例名稱。在算術之前擦除該標籤會使後來看似合理的 ISO 結果無法審核。

TAI 未實現,因此沒有斷言間隙或轉換常數

測試的 Unix 模型從 `2016-12-31T23:59:59Z` 的紀元值 1,483,228,799 前進到午夜的 1,483,228,800。它沒有 `23:59:60` 的獨特輸入。這就是該實作中 POSIX 風格行為的具體意義。

可以合理地說,轉換器根據該規則將 Unix 計數映射到 UTC 標記的民用輸出。將整數稱為每次歷史飛躍的精確原子秒計數是有誤導性的。該工具產生軟體日期,而不是實驗室時間尺度測量。

差異很微妙但很實用:序列計算繼承 Unix 約定,而民用顯示繼承 Date 和 Intl 格式。這兩條路徑都不公開原子時間元資料。

測試的 Unix 模型將 POSIX 樣式秒映射到 UTC 標籤,沒有閏秒值

工作簿中的 HTTP 和英國法定時間範例需要外部協定和合法來源。它們被省略了。在實現標頭或受監管的記錄時,請遵循實際規範,而不是根據口語等效性選擇 UTC 或 GMT 措辭。

在此模組中, `GMT` 可能會作為 Intl 零偏移量短偏移渲染的一部分出現,但那是格式化程式輸出,而不是產生協定日期的承諾。將 UI 顯示與有線格式序列化和法律術語分開。

傳回零偏移標籤的格式化程序不足以進行協定驗證。使用其專用的解析器和裝置測試完整的序列化標頭或受監管的記錄。

GMT 的協定和合法使用需要外部來源,因此被省略

GPS 時間和天文日期刻度超出了可接受的模式。 UI 僅提供秒、毫秒或自動偵測,兩種支援的單位均採用 Unix 紀元。沒有可以更改原點或跳躍約定的複選框。

來自另一個尺度的數字應該透過攝取和儲存帶有標籤。使用專門建構的來源方法進行轉換並保留原始內容。只有衍生的 Unix 值屬於此面板;否則,看似合理的結果可能會掩蓋根本性的不匹配。

拒絕不受支援的比例比提供猜測的常數更安全。時間尺度偏移可能對日期敏感,這裡錯誤的精確度可能會重新排序科學觀測結果。

GPS 和天文比例尺不是可接受的模式

在引用 ToolAcre 的通用行時使用 UTC,因為這是來源請求和 UI 標籤的內容。為數字輸入指定 Unix 秒或毫秒。避免使用將 UTC、GMT 和原子時間折疊為同義詞的寬泛表述。

命名精確是一種偵錯工具。它確定了哪些轉換是需要的以及哪些宣告尚未得到驗證。此轉換器為一條路徑(Unix 計數到 UTC/local 顯示)提供了強有力的證據,並故意不為不相關的比例提供任何證據。

撰寫檔案時,將每個術語附加到具體欄位或格式化程式。 Vague 聲稱這三個「意思是相同的時間」掩蓋了確切的轉換責任。