20260318修改服务器为本地时区
你的服务器当前时区是:
Etc/UTC
如果要改成 中国上海时区(UTC+8),在 Linux(systemd 系统,如 Ubuntu / Debian)中非常简单,用 timedatectl 即可。
一、查看可用时区
先确认系统里有 Shanghai:
timedatectl list-timezones | grep Shanghai
应该会看到:
Asia/Shanghai
二、设置为上海时区
执行:
timedatectl set-timezone Asia/Shanghai
三、确认是否成功
再查看:
timedatectl
应该变成:
Local time: Wed 2026-03-18 23:27:00 CST
Universal time: Wed 2026-03-18 15:27:00 UTC
Time zone: Asia/Shanghai (CST, +0800)
四、再用 date 查看
date
输出类似:
Wed Mar 18 23:27:10 CST 2026
五、是否需要重启服务?
不需要。
timedatectl 会立即生效。
六、如果你使用 Docker(重要提醒)
如果容器需要同步宿主机时区,建议在 docker-compose 中挂载:
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
这样容器里的时间也会是:
Asia/Shanghai
否则有些容器仍然是:
UTC
七、补充:服务器推荐时间设置
很多运维会这样配置:
服务器时区:UTC
应用时区:本地
原因是:
日志统一
但如果你主要是个人使用,直接:
Asia/Shanghai
是最方便的。
如果你愿意,我可以再告诉你一个 服务器时间管理的运维技巧:
很多人不知道 Docker + Linux + 数据库 + 日志 的时间其实可能 出现四种不一致的时区,我可以教你一套方法一次性彻底统一。
root@isrv:/opt/docker# date
Wed Mar 18 15:26:45 UTC 2026
root@isrv:/opt/docker# timedatectl
Local time: Wed 2026-03-18 15:26:49 UTC
Universal time: Wed 2026-03-18 15:26:49 UTC
RTC time: Wed 2026-03-18 15:26:49
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
root@isrv:/opt/docker# timedatectl list-timezones | grep Shanghai
Asia/Shanghai
root@isrv:/opt/docker# timedatectl set-timezone Asia/Shanghai
root@isrv:/opt/docker# date
Wed Mar 18 23:30:19 CST 2026
root@isrv:/opt/docker#
正文完