時區
轉換不同時區之間的時間
如何使用時區
- 1選擇源時區與目標時區(支援主要城市與 UTC 偏移)。
- 2輸入要轉換的本地時間。
- 3檢視目標時區對應時間,並標註是否處於夏令時。
時區轉換怎麼算?
目標時間 = 源時間 + (目標偏移 − 源偏移)地球按經度劃分 24 個時區,相鄰時區相差 1 小時。轉換時用目標時區與源時區的 UTC 偏移之差加到原時間上即可。
夏令時(DST)會讓部分地區在夏季把時鐘撥快 1 小時,導致偏移臨時變化。跨國會議、航班與遠端協作都要先確認雙方是否處於夏令時。
時區以本初子午線(格林威治)為基準,向東每 15 度經度加 1 小時,全球共 24 個理論時區。但實際邊界會**沿國界、省界曲折劃分**,且有不少「半時區」和「45 分時區」:印度用 UTC+5:30,尼泊爾用 UTC+5:45,澳大利亞中部用 UTC+9:30。所以不能簡單用經度推算,必須查時區資料庫(IANA tz database)。
夏令時的切換規則也各不相同:歐洲是 3 月最後一個週日 01:00 UTC 撥快、10 月最後一個週日撥回;北美是 3 月第二個週日、11 月第一個週日;南半球(澳大利亞、紐西蘭)季節相反,在 9–10 月開始、次年 4 月結束。**赤道附近和絕大多數亞洲國家不使用夏令時**。因此寫國際化程式時,絕不能把偏移硬編碼成固定值,必須用時區 ID 查詢。
| 時區 | 標準偏移 | 夏令時偏移 | 是否用夏令時 |
|---|---|---|---|
| UTC(協調世界時) | UTC+0 | 無 | 否 |
| 中國標準時 CST | UTC+8 | 無 | 否(1991 年起停用) |
| 日本標準時 JST | UTC+9 | 無 | 否 |
| 中歐時間 CET | UTC+1 | UTC+2 | 是 |
| 英國時間 GMT/BST | UTC+0 | UTC+1 | 是 |
| 美國東部 ET | UTC−5 | UTC−4 | 是 |
| 美國太平洋 PT | UTC−8 | UTC−7 | 是 |
| 印度標準時 IST | UTC+5:30 | 無 | 否 |
主要時區偏移與夏令時對照
常見問題
什麼是 UTC 偏移?
UTC 偏移表示該時區相對協調世界時(UTC)的小時差,如北京為 UTC+8、倫敦冬季為 UTC+0。
夏令時會影響轉換嗎?
會。實行夏令時的地區在夏季偏移 +1 小時,轉換時務必勾選對應日期是否已生效。
為什麼同一國家有多個時區?
幅員遼闊的國家(如美國、俄羅斯)橫跨多個經度,自然劃分出若干時區。
UTC 和 GMT 是一回事嗎?
日常使用可以互換,但嚴格來說不同。GMT(格林威治平太陽時)是基於地球自轉的天文時間,已被 UTC(協調世界時)取代。UTC 基於原子鐘,精度極高,通過閏秒與地球自轉保持同步,誤差控制在 0.9 秒內。所有現代系統的時間標準都是 UTC,GMT 只在英國法律和一些傳統場合沿用。
伺服器應該用什麼時區?
統一用 UTC 儲存和傳輸,只在展示給使用者的那一刻才轉換成本地時區。這樣做的好處是:日誌可以跨地域比對、避免夏令時切換時的資料重複或丟失、資料庫遷移不會因時區配置變化而錯亂。前端用 Intl.DateTimeFormat 或 dayjs/luxon 做展示層轉換即可。已有系統的本地時間存量資料遷移到 UTC 時要特別注意逐條確認基準。
