最近,当启用“自动设置时区”选项时,Windows 11 开始为两台计算机分配错误的时区。当我禁用此选项时,我可以设置正确的时区,但在我重新启用它之后,时区立即恢复为错误的时区。
我想知道是否有任何日志可以帮助我诊断此故障。
我假设其逻辑大致如下:
物理位置是通过IP地址或其他指标来确定的。
IANA 时区是根据物理位置确定的。
Windows 时区由 IANA 时区确定,具体如下:如何在 Windows 和 IANA 时区之间进行转换(特别是如指定这里)。
我已经确认计算机的位置服务正确报告了位置,并且确认 Windows zone.xml 中的映射正确。因此,我怀疑上面的第二步执行不正确,我想看看是否如此。如果有日志可以详细追踪从位置到时区的逻辑步骤,那会很有帮助。
我注意到Windows 这方面的最新变化。此行为似乎是在安装更新几周后开始的,因此我认为它没有关系,但另一方面,这是最近才发生的,我可能误解了更新的时间。特别是,如果更新更改了 Windows 识别 IANA 时区的分辨率,则可能会导致此行为,因为错误的时区几乎在每个方向上都相距 5 到 15 公里。日期是C:\Windows\Globalization\Time Zone\tzautoupdate.dat
2023-12-12。我假设这是用于在位置和时区之间进行转换的形状文件,尽管它没有任何 IANA 名称,因此 IANA 到 Windows 步骤可能已预先嵌入到该文件中。
有什么方法可以让 Windows 报告 IANA 时区吗?是否可以读取或以其他方式进行分析tzautoupdate.dat
?
答案1
可以在 PowerShell 中查询 IANA 时区。帖子 如何在 Windows 10 上将本地系统时区作为 IANA 时区 ID 获取? 有这个命令:
[Windows.Globalization.Calendar,Windows.Globalization,ContentType=WindowsRuntime]::New().GetTimeZone()
如果 Windows 总是将你的时区弄错,你可以使用以下命令禁用时区自动更新
sc.exe 配置
如下所示(请注意 后面的空白start=
):
sc config tzautoupdate start= disabled
要设置固定时区,请使用 tzutil 命令 像这样:
tzutil /s "Eastern Standard Time"
答案2
这些机器上是否有双重启动?
如果你的 Windows 工作得很糟糕,你需要设置新的注册表 DWORD32 项,RealTimeIsUniversal
名为
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
并将其设置为1
我可能错了,因为这通常是分配 UTC 时间的问题,而不是时区本身的问题