要推算 UTC 時差,請用對應的當地日期和時間減去 UTC 日期和時間,並保留日期變化。在 Mac 版 Numbers 中,無須選擇具名時區,就能以分鐘為單位計算時差。
本指南適用於要核對出版時間戳記與其 UTC 對應值的人。以下所有出版日期皆為合成資料。任務是找出該出版時刻的時差,並記錄證據所能支持的結論。
計算前需要哪些資訊?
你需要同一出版時刻的兩種表示方式:完整的當地日期和時間,以及完整的 UTC 日期和時間。確認兩者描述的都是出版時間,而不是一個描述出版時間、另一個描述較晚的編輯時間。兩者之間的關聯是計算的前提;看似合理的數值差異無法證明它們彼此對應。
請將以下四個概念分開看待:
| 概念 | 合成範例 | 表示的資訊 |
|---|---|---|
| 民用日期 | 2026-07-01 |
日曆日期,不含時間或與 UTC 的關係 |
| 當地日期和時間 | 2026-07-01 05:25:00 |
日曆和時鐘欄位,仍需時差或時區才能識別某個時刻 |
| 時刻 | 2026-06-30T23:40:00Z |
以 UTC 表示的特定時刻 |
| UTC 時差 | +05:45 |
該時刻當地時鐘與 UTC 的差值 |
| 具名時區 | 提供的 IANA 時區識別碼 | 用來判定不同時刻時差的一組規則 |
Apple 在 Foundation 中也有類似區分:Date 表示不依附於日曆或時區的時間點,而 DateComponents 表示須搭配日曆和時區解讀的日曆欄位。因此,顯示的日期字串和某個時刻是不同類型的輸入。Apple:日期與時間
本工作表請使用有效的格里曆日期,以及從 00 到 59 的整秒值。計算時也請保留原始時間戳記字串。如果任一來源只提供日期,或只提供沒有日期的時間,請先取得缺少的資訊,再計算精確時差。
時差如何計算?
RFC 3339 將正負號定義為當地時間減去 UTC。結果為正,表示當地時鐘較 UTC 快;結果為負,表示較慢。從當地日期和時間減去時差,即可還原 UTC。RFC 3339,第 4.2 節
第一組合成出版資料的成對值如下:
- UTC:
2026-06-30T23:40:00Z - 當地時間:
2026-07-01 05:25:00 - 差值:正 5 小時 45 分鐘
- 推算出的時差:
+05:45
當地日期晚了一天。若只計算時鐘時間,會得到誤導性的負差值。以下以分鐘明確計算,說明日期為何重要:
offset_minutes = 1440 × calendar_day_difference
+ local_clock_minutes
- UTC_clock_minutes
calendar_day_difference = +1
local_clock_minutes = 5 × 60 + 25 = 325
UTC_clock_minutes = 23 × 60 + 40 = 1420
offset_minutes = 1440 + 325 - 1420 = 345
345 minutes = 5 hours 45 minutes
此處的日期差是完整日期之間的差值。不要只用日期中的日數相減:7 月 1 日減去 6 月 30 日是一天,即使 1 - 30 是負數也一樣。以下工作表會用日期運算處理跨月情況。
如何在 Mac 版 Numbers 中計算?
你需要安裝 Numbers,並準備包含一個表格的試算表。範例使用英文函數名稱和逗號分隔符號。如果公式編輯器要求使用不同的分隔符號,請透過「函數瀏覽器」插入函數,並填入其引數欄位。
1. 建立清楚標示的欄位
第 1 列使用以下標籤:A1 填入 UTC 欄位,B1 填入 當地欄位,C1 填入 時差分鐘,D1 填入 還原的 UTC。這些標籤描述你的輸入;在 A 欄輸入日期本身並不會進行時區轉換。
選取 A 欄和 B 欄,然後使用「格式」側邊欄、「儲存格」分頁和「資料格式」選單,選擇「日期與時間」。選擇能顯示完整日期和時間(包括秒)的格式。Apple 在其 Numbers 儲存格格式指南中說明了這些控制項。
2. 明確建立兩個值
按一下 A2,輸入以下公式,然後按 Return 確認:
=DATE(2026,6,30)+DURATION(0,0,23,40,0,0)
在 B2 輸入:
=DATE(2026,7,1)+DURATION(0,0,5,25,0,0)
DATE 將年、月、日分別作為數字輸入,避免日期字串產生歧義。DURATION 依序接受週、日、小時、分鐘、秒和毫秒。此處將時間長度加到各日期上,以提供時鐘時間。Apple:DATE、Apple:DURATION
確認 A2 顯示 6 月 30 日 23:40:00,而 B2 顯示 7 月 1 日 05:25:00。你正在表示兩組要相減的日曆欄位。請在來源備註中保留原始 UTC 後綴,不要依靠試算表儲存格的顯示方式來判斷它是否為 UTC。
3. 計算當地時間減去 UTC
在 C2 輸入:
=DUR2MINUTES(B2-A2)
預期結果為 345。相減日期/時間值會產生時間長度,而 DUR2MINUTES 會將其表示為分鐘數。如有需要,請將 C2 的「資料格式」設為「數字」。Apple:DUR2MINUTES
若要輸入或檢查公式,請選取儲存格並輸入 =;Numbers 會開啟「公式編輯器」。如果公式顯示錯誤,請先按一下錯誤指示符號,讀取說明再繼續。Apple:在 Mac 版 Numbers 中使用表格儲存格中的資料計算數值
4. 記錄正負時差並檢查結果
將分鐘數的絕對值換算成整小時和剩餘分鐘數。對於 345,結果是 5 小時 45 分鐘。由於結果為正,請記錄為 +05:45。若結果為 -210,則應寫成 -03:30;正負號適用於整個時差。
在 D2 輸入反向計算:
=B2-DURATION(0,0,0,C2,0,0)
將 D2 設為「日期與時間」格式,並顯示日期和時間。它應該顯示與 A2 相同的日期和時間。這可檢查計算方向和還原結果,但不能獨立證明原始輸入描述的是同一則出版內容。
哪些範例能找出日期和正負號的錯誤?
使用以下合成資料配對檢查你的解讀。每新增一列,請以 DATE 加上 DURATION 建立 A 和 B,然後在相減公式中使用該列的儲存格參照。
| UTC 出版時間戳記 | 對應的當地欄位 | 時差分鐘 | 時差 |
|---|---|---|---|
2026-06-30T23:40:00Z |
2026-07-01 05:25:00 |
345 | +05:45 |
2026-07-01T02:15:00Z |
2026-06-30 22:45:00 |
-210 | -03:30 |
2026-08-31T23:30:00Z |
2026-09-01 01:30:00 |
120 | +02:00 |
第二組資料跨回前一天的當地日期。第三組則以整小時時差跨越月份邊界。這些例子有助於找出相減順序顛倒、漏掉日期,以及假設時差只能以整小時計算等問題。
請保留足夠的小數位數,以便看出是否有不足一分鐘的結果。對於這些整秒輸入,若出現意料之外的小數,應該查明原因:檢查秒數、輸入精度,以及記錄是否確實相互對應。不要只為了得到熟悉的時差而將其四捨五入。RFC 3339 的數字時差精確到分鐘,因此含秒數的差異無法只靠附加 HH:MM 時差來忠實表示。RFC 3339,第 4.2 節
為什麼無法推斷唯一的具名時區?
時差描述的是某一時刻的時間關係。具名時區則提供用來判定其他時刻時間關係的規則。RFC 9557 明確區分這些概念,並說明僅靠時差不足以進行當地日曆運算,例如找出一天後的相同當地時間。因此,時差相符並不能證明某個具名時區是唯一答案。RFC 9557:時區定義
請將結果記錄為「推算的出版時差:+05:45;具名時區:未知。」如果之後從來源取得時區識別碼,請另外保留。更多成對的出版資料可以揭露更多時差,但若要選定時區,還需要超出比對相符項目的證據。
Apple 的 API 採用相同的計算方向。TimeZone.secondsFromGMT(for:) 接受既有時區和日期,計算該日期的時差。其日期引數預設為目前日期,因此若要檢查出版時間,必須提供出版時刻。此方法不能接受時差並回傳原始具名時區。Apple:secondsFromGMT(for:)
什麼時候應該停止並取得更完整的輸入?
接受結果前,請依照以下順序判斷:
- **只有民用日期:**取得時鐘時間和 UTC 參照。單靠日期無法識別某個時刻。
- **UTC 參照帶有非零數字時差:**使用本工作表前,先依照其標示的時差換算成 UTC。
- **兩個輸入都已換算為時刻:**保留或取回原始當地欄位。標準化後相減同一時刻的兩種表示方式,結果會是零。
- **顯示日期時,差值有所變化:**檢查完整儲存值。隱藏的日期仍是計算的一部分。
- **計算可行,但配對關係不確定:**在確認出版關聯之前,將其保留為候選差值。
Numbers 可能會悄悄補上缺少的欄位:Apple 指出,只輸入時間時會加上今天的日期。隱藏日期或時間只會改變顯示方式,值本身仍可供計算使用。若儲存格的可見內容有任何不清楚之處,請檢查「智慧型儲存格檢視」。Apple:在 Mac 版 Numbers 中設定日期、貨幣等格式
此外,以 Z 結尾的 UTC 時間戳記可確定 UTC 時刻,但無法確定原始當地時區。RFC 9557 更新了 RFC 3339 對 Z 的處理方式,以容納未知的當地時差。因此,推算時不可缺少另一組當地時間表示方式。RFC 9557,第 2.2 節
完成出版時間核對後,請保留原始配對、帶正負號的時差,以及兩個值代表同一時刻的依據。如此便能得到可重現的結果;若證據無法辨識具名時區,就讓它保持未知。
來源
RFC 3339:網際網路上的日期和時間:時間戳記 — RFC 編輯部
RFC 9557:網際網路上的日期和時間:含附加資訊的時間戳記 — RFC 編輯部
日期與時間 — Apple 開發者文件
secondsFromGMT(for:) — Apple 開發者文件
在 Mac 版 Numbers 中設定日期、貨幣等格式 — Apple 支援
在 Mac 版 Numbers 中使用表格儲存格中的資料計算數值 — Apple 支援
DATE — Apple 支援
DURATION — Apple 支援
DUR2MINUTES — Apple 支援