Ubuntu 修改时区完整教程(Server / Desktop 通用)

3次阅读
没有评论

很多人新装 Ubuntu 服务器或者虚拟机时,经常遇到时间不对的问题,日志时间、数据库时间、定时任务全部跟着时区跑偏。国内最常用的是东八区 Asia/Shanghai,本文整理三种修改时区方式:timedatectl(推荐)、tzdata 交互式、图形界面,适配 Ubuntu 20.04 / 22.04 / 24.04 所有现代版本。

注意:Asia/Shanghai 才是国内标准时区标识,不要使用 CST、Asia/Beijing,系统标准名称是 Shanghai。

一、先查看当前时区

timedatectl

输出里重点看这一行:

Time zone: UTC (UTC, +0000)

上面代表当前是 UTC 时区,需要改成 Asia/Shanghai。

也可以单独看软链接:

ls -l /etc/localtime

二、方法 1:timedatectl(首选,所有 systemd 版本推荐)

这是现代 Ubuntu 官方推荐方式,自动维护 /etc/localtime 软链接,一步到位Ubuntu Man…。

  1. 列出所有时区,搜索上海:
timedatectl list-timezones | grep Shanghai

结果:Asia/Shanghai

  1. 设置时区为东八区:
sudo timedatectl set-timezone Asia/Shanghai
  1. 再次校验:
timedatectl

看到下面就成功了:

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

三、方法 2:dpkg-reconfigure tzdata 交互式向导

适合新手,会弹出图形化选择菜单,服务器无桌面也可以运行文本向导Ubuntu-it。

sudo dpkg-reconfigure tzdata

操作步骤:

  1. 先选择区域:Asia
  2. 再选择城市:Shanghai 回车确认,即时生效。

四、方法 3:手动软链接(兼容老系统,不优先推荐)

原理直接替换 /etc/localtime 指向时区文件:

sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

⚠️ 提醒:尽量优先用 timedatectl,手动软链接在部分容器、systemd 环境下可能和 timedatectl 状态不一致。

五、方法 4:桌面版图形界面(Ubuntu Desktop)

  1. 右上角点开系统菜单 → Settings(设置)
  2. 找到 System → Date & Time(日期和时间)
  3. 先关闭「Automatic Time Zone(自动时区)」
  4. 点击 Time Zone,搜索 Shanghai,在地图上选中上海即可自动保存Ubuntu Doc…

六、时区改完之后,时间同步补充(NTP)

时区只是调整偏移,时间本身不准,需要开启系统时间同步:

# 开启系统时间同步
sudo timedatectl set-ntp true
# 查看同步状态
timedatectl

如果服务器内网环境,可自行修改 /etc/systemd/timesyncd.conf 指定 NTP 服务器。

七、常见坑说明

  1. Docker 容器时区不跟着宿主机变 容器内时区独立,需要在启动时挂载时区文件,或者容器内部单独执行上面的时区命令。
# 示例:启动容器挂载宿主机时区
docker run -v /etc/localtime:/etc/localtime:ro xxx
  1. MySQL、Redis、应用日志时间没变 部分程序会在启动时缓存时区,修改系统时区后,重启对应服务才会生效。
  2. 不要用 date -s 单纯改时间,时区不对,重启或者同步 NTP 后时间会再次错乱。

小结

表格

场景 推荐方案
Ubuntu Server、云服务器 sudo timedatectl set-timezone Asia/Shanghai
新手、不想敲准确时区名 sudo dpkg-reconfigure tzdata
桌面 Ubuntu 设置里图形化选择时区

修改时区是运维基础操作,日志排查、定时任务、数据库时间一致性都依赖它,装好系统第一件事建议就把时区和 NTP 同步配置好。

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)
验证码