一、查看当前时区
基础命令
date -R # 显示时区偏移(如+0800表示东八区)timedatectl # 查看详细时区信息及NTP同步状态(推荐)
文件验证
ls -l etc/localtime # 查看软链接指向的时区文件(如指向/usr/share/zoneinfo/Asia/Shanghai)
二、修改时区的4种方法
1. timedatectl 命令(推荐)
sudo timedatectl set-timezone Asia/Shanghai # 直接设置时区(需root权限)
优势:支持所有基于 systemd 的系统(如 CentOS 7+/Ubuntu 16.04+),自动更新 /etc/localtime 和系统配置。
验证:执行 timedatectl 检查是否生效。
2. 手动创建符号链接
sudo rm /etc/localtime # 删除旧链接sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 创建新链接
适用场景:所有 Linux 发行版(包括旧版本)。
注意:需手动同步时间(如 hwclock --systohc)。
3. 交互式选择(tzselect)
tzselect # 按提示选择:Asia → China → Beijing,生成TZ变量值
输出示例:TZ='Asia/Shanghai'; export TZ,需将此行添加到 /etc/profile 或用户配置文件(如 .bashrc)。
限制:仅临时生效,需手动持久化配置。
4. 修改配置文件(Debian/Ubuntu)
echo "Asia/Shanghai" | sudo tee /etc/timezone # 直接写入时区名称sudo dpkg-reconfigure tzdata # 重新配置时区
三、关键注意事项
1.NTP时间同步
启用自动同步(防止时间漂移):
sudo timedatectl set-ntp true # 开启NTP服务
手动同步:
sudo ntpdate pool.ntp.org # 临时同步网络时间
2.硬件时间与系统时间同步
sudo hwclock --systohc # 将系统时间写入硬件时钟sudo hwclock --hctosys # 反向同步(硬件时间覆盖系统时间)
3.服务重启
修改时区后,重启依赖时间的服务(如 cron、数据库):
sudo systemctl restart cron # 示例:重启定时任务服务
四、方法对比与选型建议
| 方法 | 适用场景 | 优势 | 注意事项 |
|---|---|---|---|
timedatectl | |||
| 手动符号链接 | |||
tzselect | |||
| 配置文件修改 |
五、常见问题
时区修改后时间未更新
检查 /etc/localtime 软链接是否正确,重启相关服务或系统。
时区显示为UTC而非CST
使用 timedatectl set-local-rtc 0 禁止硬件时钟使用本地时间。
多服务器时区统一
通过 Ansible 等工具批量执行 timedatectl 命令,确保集群一致性。
提示:生产环境推荐优先使用 timedatectl,开发测试环境可灵活选择交互式或手动配置。若需进一步优化时间精度,可结合 Chrony 替代 NTP 服务。
文章转载自老柴杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




