繁體中文

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

夏令時間轉換如何改變當地時間列顯示的內容

· 工作原理

時間戳 時區 偵錯

穿過折疊本地時脈間隔的連續紀元線
原始 ToolAcre 向量圖

本地時鐘每年跳躍兩次,並轉換周圍的紀元值會產生重複或從不存在的本地時間。這篇文章解釋了機制,因此圍繞 DST 更改的轉換器輸出是有意義的。

在 01:30 處記錄的事件兩次 — 每小時間隔兩個紀元,兩者都顯示相同的本地掛鐘時間

Two distinct epochs can format to the same wall-clock label during a backward offset change.此工作簿將該標籤固定為 01:30,但儲存庫未建立通用過渡時間。重複間隔屬於瀏覽器區域的適用規則,而非 Unix 時間本身。

當出現重複項時,將紀元、ISO 行和顯示的偏移量保留在一起。僅對本地 `HH:mm` 欄位進行排序可以反轉或折疊事件。 ToolAcre 的 UTC 渲染為每個瞬間提供了獨特的時間錨點,即使熟悉的本地面孔重新訪問較早的範圍也是如此。

Repeated local readings are possible;驗證瀏覽器中的實際轉換,而不是假設 01:30

The epoch count progresses through a transition without changing its unit or origin.變化的是在本地區域中格式化日期時應用的 Intl 偏移量。連續的兩秒鐘在 UTC 中仍然是連續的,即使它們的本地標籤看起來跳得更遠或向後。

這種區別可以防止破壞性的「更正」。從儲存的紀元中減去一個小時,因為儀表板重複一個小時會更改有效事件。修正顯示標籤中的格式、分組或歧義。保持機器即時,除非有證據表明來源時鐘本身是錯誤的。

A useful invariant survives every offset change: subtracting the two epoch values gives their true elapsed duration.減去格式化的牆時間可能不會,因為它們的偏移量可能不同。

轉換會改變適用的偏移量,同時紀元保持連續

在向前偏移變更期間,可能不會產生一系列局部牆標籤。它的寬度和位置無法從這個實作中安全地概括出來; ToolAcre 問 Intl 並報告結果。它不包含每次輪班為一小時或發生在 02:00 的硬編碼假設。

轉換器從現有時刻開始,因此它只是顯示兩側適用的本地讀數。調度不存在的本地輸入是不同的操作。如果表單必須解決該情況,則其產品政策必須決定是否拒絕、移動或重新解釋所要求的掛起時間。

向前轉換可以跳過本地讀數;確切的間隔取決於經過驗證的區域規則

向後的變化使得另一個範圍在不同的偏移量下出現多次。除非本地文字包含偏移量或關聯的紀元,否則它會變得不夠。 ToolAcre 請求 `shortOffset`,為讀者提供了一種在平台提供此格式時區分兩種渲染的方法。

資料庫重複資料刪除可能會丟棄真實記錄。具有穩定標識符的關鍵事件並儲存它們的瞬間。本機日曆欄位是有用的查詢投影,但它們不應取代區分第一次出現和第二次出現的值。

向後轉換可以重複本地讀數;確切的間隔取決於經過驗證的區域規則

使用為測試裝置上配置的區域記錄的轉換,然後在其周圍選擇兩個間隔一小時的時期。將每個顯式轉換為秒並記錄 ISO、本地輸出和偏移量。如果本地標籤提前量與 UTC 不同,則變化的偏移量會解釋該差異。

此方法有意不對日期或城市進行硬編碼。此任務警告不要在沒有證據的情況下斷言命名區域轉換規則,且儲存庫沒有固定的區域固定裝置。您觀察到的一對成為該環境中可複製的工作範例,而該文章對於其他地方的讀者來說仍然是真實的。

工作示例:從轉換器匯出轉換對,而不是發布未经驗證的区域规則

某些配置的區域可能在測試年份中沒有顯示季節性變化;其他的可能因歷史日期而異。轉換器可以顯示這些結果,但不會解釋或版本化規則。固定偏移計算無法發現變化點,因為它假設正在測試的恆定性。

對於回歸測試,固定環境並記錄其預期的平台資料,而不是將一台筆記型電腦視為通用。如需支持,請詢問區域名稱、即時和渲染偏移。僅說「DST 是錯誤的」會忽略重現瀏覽器實際格式所需的證據。

這不包括什么 - 在 DST 更改期間安排未來的當地時間,這需要区域规則而不是固定偏移量

此面板轉換已知的瞬間。它不會通過偏移量更改來計算定期的未來約會,例如“每周一在 09:00”。這項工作從一個命名区域以及针對間隙和重叠的策略開始,這两者都不是由一個固定的纪元表示的。

合並两個工作流程會導致一個微妙的錯誤:添加七次 86,400 秒會保留经過的持續時間,不一定是相同的未來挂钟標籤。使用為民用時間重現而建構的調度邏輯。然後使用紀元轉換器來檢查特定已解決的事件。

调度程序必須另外保留用戶在重叠期間是指较早还是较晚發生的情况。此選擇在單獨的固定偏移時脈串中沒有表示。

要点:相信纪元,怀疑挂钟 — 以及 Unix 時間戳轉換器的 UTC 讀數如何锚定本地時間戳

信任排序的紀元並將掛鐘視為依賴於上下文的渲染。 ToolAcre 保存一個 Date 常數,而 Intl 提供 UTC 和本地形式。因此,可以在不改變基礎計數的情況下檢查令人驚訝的跳躍或重複。

安全調試包是原始值、單位、ISO 輸出、本地區域標籤和偏移量。對於這些字段,轉換作為格式規則更改可見。如果沒有它們,重複的時鐘文字會引發對資料不支援的重複請求、延遲佇列或損壞的伺服器時鐘的猜測。

此證據包也使錯誤報告變得可移植。即使另一位工程師自己的本地區域和掛鐘渲染完全不同,也可以重現 UTC 時刻。