Ubuntu时间戳出现乱码的定位与修复
一、先快速判断是哪类问题
localetimedatectlLANG=zh_CN.UTF-8(或 en_US.UTF-8)Time zone: Asia/Shanghai (CST, +0800)RTC in local TZ: no二、字符编码 Locale 导致的“乱码”修复
locale 若看到 LC_CTYPE/LC_TIME 为 zh_CN(无 UTF-8),或 LANG 设置异常,先临时切换:
export LANG=en_US.UTF-8export LANG=zh_CN.UTF-8date,若显示恢复正常,说明是 Locale 问题。sudo dpkg-reconfigure locales,勾选并生成 en_US.UTF-8、zh_CN.UTF-8,然后将 LANG=zh_CN.UTF-8(或 en_US.UTF-8)写入配置文件(见下条)。/etc/default/locale 或 ~/.bashrc/~/.profile):
LANG=zh_CN.UTF-8LANG=en_US.UTF-8source ~/.bashrc 或重新登录生效。LC_TIME 等被设为非 UTF-8 值(如仅 zh_CN),会导致 date 等时间命令输出乱码,需改为 UTF-8 并重新登录。三、时区与硬件时钟 RTC 导致的显示偏差
sudo timedatectl set-timezone Asia/Shanghaitimedatectl status 应显示 Time zone: Asia/Shanghai (CST, +0800)。RTC in local TZ: no,仅正确设置时区为 Asia/Shanghai。sudo timedatectl set-local-rtc yes --adjust-system-clocktimedatectl 输出中 Local time、Universal time 与 RTC time 关系应合理一致。四、时间不同步导致的“时间戳错乱/不一致”
timedatectl status 查看 Network time on 与 NTP synchronized。sudo timedatectl set-ntp trueNTP synchronized 应为 yes。sudo apt-get install ntpdatesudo ntpdate pool.ntp.org五、仍未解决时的排查清单
CJK 字体缺失会显示方块)。LC_TIME)。journalctl、/var/log/syslog),以区分是系统时间问题还是显示问题。