Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

為什麼 Linux 時區列表沒有北京?歷史淵源與一鍵修復

編輯:Linux 教學

現象

安裝 Linux 選擇時區時,下拉列表出現上海、重慶、烏魯木齊、喀什,唯獨沒有「北京」。這讓不少國內用戶困惑:首都怎麼會缺席?

歷史根源:1949 年前的五大時區

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 即可;個人偏好可通過別名文件實現「北京」顯示,不影響時間正確性。

Copyright © Windows教程網 All Rights Reserved