前置说明

东八区标准时区标识为 Asia/Shanghai

所有操作均需在 WSL2 Ubuntu 终端内执行,带sudo的命令需要输入你的 Ubuntu 用户密码。

一、配置验证(先查看)

验证配置是否生效

执行以下任意命令,确认时区为东八区:

  1. 基础时间查看:

    $date
    Tue Apr 11 01:55:16 CST 2026
    正确输出示例:Tue Apr 14 15:30:00 CST 2026,其中CST代表中国标准时间,+0800为东八区偏移量。
  2. 详细时区状态(开启 systemd 可用):

    $timedatectl status
    
                   Local time: Tue 2026-04-12 01:55:38 CST
               Universal time: Mon 2026-04-11 17:55:38 UTC
                     RTC time: Mon 2026-04-11 17:55:40
                    Time zone: Asia/Shanghai (CST, +0800)
    System clock synchronized: yes
                  NTP service: active
              RTC in local TZ: no
    正确输出会包含:Time zone: Asia/Shanghai (CST, +0800)
  3. 查看时区文件配置:

    bash

    运行

    cat /etc/timezone
    # 正确输出:Asia/Shanghai
    readlink /etc/localtime
    # 正确输出:/usr/share/zoneinfo/Asia/Shanghai
    

方法一:交互式可视化配置(新手首选,兼容性最强)

该方法是 Debian/Ubuntu 系统原生方案,无需开启 systemd,适配所有 WSL2 Ubuntu 版本。

  1. 先更新软件源并确保时区工具包tzdata已安装:

    sudo apt update && sudo apt install -y tzdata
    
  2. 执行交互式时区配置命令:

    sudo dpkg-reconfigure tzdata
    
  3. 弹出的配置界面中,按上下方向键选择:
    • 第一步:地理区域选择 Asia(亚洲),回车确认
    • 第二步:城市选择 Shanghai(上海),回车确认
  4. 配置完成后,系统会自动更新时区,无需额外重启。

方法二:非交互式手动配置(适合脚本 / 自动化,一步到位)

无需交互界面,直接通过命令行完成配置,适合批量部署或无界面场景。

  1. 备份原有本地时间文件,创建东八区时区文件软链接:

    sudo mv /etc/localtime /etc/localtime.bak
    sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
  2. 写入时区配置到系统文件,永久生效:

    echo "Asia/Shanghai" | sudo tee /etc/timezone
    
  3. 强制更新时区数据,使配置立即生效:

    sudo dpkg-reconfigure -f noninteractive tzdata
    

方法三:systemd 官方方式(已开启 systemd 的环境推荐)

WSL2 默认未开启 systemd,若你已启用 systemd,可使用 Ubuntu 官方推荐的timedatectl命令配置。

  1. (未开启 systemd 需先执行)编辑 WSL 配置文件开启 systemd:

    sudo nano /etc/wsl.conf
    
    写入以下内容,按Ctrl+O回车保存,Ctrl+X退出:

    ini

    [boot]
    systemd=true
    
  2. 关闭 WSL 使配置生效(在 Windows CMD/PowerShell 中执行):

    powershell

    wsl --shutdown
    
  3. 重新打开 Ubuntu 终端,执行时区设置命令:

    sudo timedatectl set-timezone Asia/Shanghai
    

关键:解决 WSL2 重启后时区重置的官方方案

WSL2 默认会自动同步 Windows 系统的时区,导致手动配置重启后失效,可通过微软官方的wsl.conf配置彻底解决Microsoft Learn。

  1. 在 Ubuntu 终端中编辑 wsl.conf 配置文件:

    sudo nano /etc/wsl.conf
    
  2. 写入以下核心配置,关闭 Windows 时区自动同步

    [time]
    useWindowsTimezone = false
    
    若已开启 systemd,可保留之前的[boot]配置,完整示例:

    [boot]
    systemd=true
    
    [time]
    useWindowsTimezone = false
    
  3. 保存退出后,在 Windows CMD/PowerShell 中执行命令彻底重启 WSL:

    wsl --shutdown
    
  4. 重新打开 Ubuntu 终端,重新执行上述任意一种时区配置方法,后续重启 WSL / 电脑,时区都不会再被重置。

常见问题修复

  1. 休眠 / 睡眠后 WSL2 时间不同步:

    sudo hwclock -s
    
    该命令会从 Windows 硬件时钟同步系统时间,立即修复时间偏移。
  2. 时间持续偏移,开启 systemd 的环境可安装时间同步服务:

    sudo apt install -y systemd-timesyncd
    sudo systemctl enable --now systemd-timesyncd
    
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐