Hello, Snowflake!

时区设置

Feb 24, 2026
3
0

在 Linux 宿主机上设置时区和时间,最现代且推荐的方法是使用 timedatectl 命令。

1. 设置时区(最重要)

通常时间不对是因为时区没设对。先将时区设置为北京时间:

Bash

# 设置时区为亚洲/上海
sudo timedatectl set-timezone Asia/Shanghai

2. 检查当前状态

执行以下命令查看系统时间、硬件时间以及时区是否生效:

Bash

timedatectl

输出示例:

  • Local time: 周一 2026-02-23 18:21:14 CST (这是你的本地时间)

  • Universal time: 周一 2026-02-23 10:21:14 UTC (世界标准时间)

  • Time zone: Asia/Shanghai (CST, +0800)


3. 手动校准时间(如果时间依然不准)

如果时区对了但具体分钟不对,可以手动设置(不推荐长期使用,建议用 NTP):

Bash

# 格式为 "YYYY-MM-DD HH:MM:SS"
sudo timedatectl set-time "2026-02-23 18:25:00"

4. 开启自动同步(NTP)

为了保证时间永远准确,应该开启网络时间同步:

Bash

sudo timedatectl set-ntp true

5. 针对 Docker 用户的额外提醒

一旦你完成了上述宿主机的设置:

  • 如果你挂载了 /etc/localtime:容器会自动同步这个新设置。

  • 如果你使用 TZ 环境变量:容器会忽略宿主机时间,强制走环境变量定义的偏移。