Ubuntu 22.04 设置时区
最推荐:用 timedatectl 命令,一步搞定。
方法一:命令行(推荐)
bash
# 查看所有可用时区
timedatectl list-timezones | grep Shanghai
# 设置为上海时区
sudo timedatectl set-timezone Asia/Shanghai
# 验证
timedatectl
输出示例:
Local time: Fri 2026-06-05 20:43:03 CST
Universal time: Fri 2026-06-05 12:43:03 UTC
RTC time: Fri 2026-06-05 12:43:03
Time zone: Asia/Shanghai (CST, +0800)
方法二:图形界面
设置 → 时间和日期 → 时区 → 选择 Shanghai
方法三:手动修改(备用)
bash
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai" | sudo tee /etc/timezone
常见时区参考
| 城市 | 时区标识 |
|---|---|
| 上海/北京 | Asia/Shanghai |
| 东京 | Asia/Tokyo |
| 纽约 | America/New_York |
| 伦敦 | Europe/London |
全部时区列表:
timedatectl list-timezones
设完时区后,date 命令输出会立即更新,不需要重启。
没有 timedatectl?用这几个替代工具
方案一:dpkg-reconfigure tzdata(最推荐)
交互式菜单,选时区,不用记命令:
bash
sudo dpkg-reconfigure tzdata
会弹出图形/文本菜单:
1. Asia 5. America 9. Europe
2. Atlantic 6. Pacific 10. Indian
...
Select geographic area: 3 ← 选 Asia
Select city or region: 11 ← 选 Shanghai
⚠️ 如果提示
command not found,说明tzdata包也没装,先装:
bashsudo apt install tzdata
方案二:tzselect(纯文本交互)
bash
tzselect
按提示一步步选,最后会输出结果,复制执行即可。
方案三:直接改文件(最快,无需任何工具)
bash
# 设置时区文件
sudo ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 写入时区名称(可选,部分程序会读这个)
echo "Asia/Shanghai" | sudo tee /etc/timezone
一行搞定,不依赖任何命令。
方案四:date 命令(临时生效,重启失效)
bash
# 临时改时间(重启后恢复)
sudo date -s "2026-06-05 20:50:00"
❌ 不推荐,只能救急。
对比
| 工具 | 是否需要安装 | 是否重启生效 | 难度 |
|---|---|---|---|
dpkg-reconfigure tzdata |
需要 tzdata | ✅ | 简单 |
tzselect |
需要 tzdata | ✅ | 简单 |
ln -snf 直接改文件 |
不需要 | ✅ | 最简单 |
date |
不需要 | ❌ | 最简单但临时 |
优先用 ln -snf 那条,不依赖任何工具,改完立即生效。