安裝 Linux 選擇時區時,下拉列表出現上海、重慶、烏魯木齊、喀什,唯獨沒有「北京」。這讓不少國內用戶困惑:首都怎麼會缺席?
1912 年北京觀象台劃定,經內政部批准,中國曾劃分為五個時區:
| 時區名 | 標準經度 | 對應城市 | UTC 偏移 |
|---|---|---|---|
| 長白時區 | 127.5°E | 哈爾濱 | GMT+8:30 |
| 中原標準時區 | 120°E | 上海 | GMT+8 |
| 隴蜀時區 | 105°E | 重慶 | GMT+7 |
| 新藏時區 | 90°E | 烏魯木齊 | GMT+6 |
| 崑崙時區 | 82.5°E | 喀什 | GMT+5:30 |
1949 年後,全國統一使用「北京時間」(即中原標準時 UTC+8),但 IANA 時區數據庫為保留歷史數據完整性,仍保留上述五個歷史時區條目。北京作為政治中心,並無獨立的歷史時區定義,故不在列表中。
Asia/Shanghai 當前規則即為 UTC+8,無夏令時,與北京時間完全同步。選擇上海即等同於選擇北京時間,無任何功能差異。
# 1. 複製時區文件
cp /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Beijing
# 2. 編輯 zone.tab,追加一行(經緯度為北京坐標)
# 格式:國家碼 經緯度 時區名 註釋
echo -e "CN\t+3955+11623\tAsia/Beijing\tBeijing Time" >> /usr/share/zoneinfo/zone.tab
# 3. 更新緩存(部分發行版需要)
tzdata-update # 或 dpkg-reconfigure tzdata / timedatectl set-timezone Asia/Beijing
注意:系統升級 tzdata 套件可能覆蓋手動修改,建議將上述步驟寫入部署腳本或容器 Dockerfile 中。
Ubuntu 22.04+、Fedora 36+、RHEL 9+ 的圖形安裝器已在「Asia/Shanghai」旁顯示「Beijing Time」別名,或直接提供「China Standard Time」選項,無需手動干預。
「無北京」非 Bug,而是歷史數據保全的體現。生產環境直接選 Asia/Shanghai 即可;個人偏好可通過別名文件實現「北京」顯示,不影響時間正確性。