让 Windows 使用 UTC:解决双系统时间错乱问题
问题根源
在使用Windows和Linux双系统时,会有一个很烦人的问题:
linux下设置时区正常时,win下时间会错位
win下同步时间时,linux下时间会错位
原因很简单,win认为主板时间(RTC)是本地时间(Local Time),linux认为主板时间是UTC时间
解决方案
除了每次打开系统时手动调整时间这种笨方法,有两个方案:
让win认为主板时间是UTC
让linux认为主板时间是本地时间
以POSIX制定的标准(Markus Kuhn)而言,更推荐的方式是调整win的注册表,让它采用和linux一样的行为
推荐方案:让win认为RTC是UTC
按
Win + R
输入regedit
打开注册表编辑器导航到这个路径
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
新建
DWORD (32-bit)
值,名称RealTimeIsUniversal
,值1
重启win
不推荐的方案:让linux认为RTC是本地时间
timedatectl set-local-rtc 1 --adjust-system-clock
但这样会有很多问题,因为大多数服务都是遵循POSIX标准的:
违背 Linux 的 UTC 设计
某些服务(如日志、Docker)会记录错误的时间
和 cron、systemd-timers 配合可能出现“任务提前/延迟触发”
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果