是否有软件或方法可以配置 Windows 7,以便我可以将时间同步到时间服务器,但我的系统时钟比时间服务器的时间快 10 分钟?
例如,当同步到时间服务器并且时间服务器显示时间是上午 07:00 时,我的系统时钟中显示的时间不是同步到上午 7:00,而是上午 7:10。
答案1
使用 SetTimeZoneInformationAPI我认为微软没有预料到您的需求,但可以定义一个带有 10 分钟偏移的自定义时区。这文章包含用于替换时区表的示例数据 - 只需稍加修改即可实现您想要的效果。
更新 - 以下是我从各种 MS 文档中收集到的信息
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\阿富汗标准时间] "TZI"=十六进制:f2,fe,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "显示"="(UTC+04:30) 喀布尔" “Dlt”=“阿富汗夏令时” “Std”=“阿富汗标准时间”
以上是注册表项的示例。请注意 TZI 键和值
这个[TZI]结构指定了特定于时区的信息。 复制 typedef struct _TIME_ZONE_INFORMATION { 长偏向; WCHAR 标准名称[32]; SYSTEMTIME 标准日期; 长标准偏差; WCHAR 日光名称[32]; 系统时间夏令时; 长日光偏差; } 时区信息; 偏见 指定此计算机上本地时间转换的当前偏差(以分钟为单位)。 偏差是 UTC 和当地时间之间的差异(以分钟为单位)。 所有 UTC 与当地时间之间的转换均基于以下公式。 UTC = 当地时间 + 偏差
以上内容适用于 WinCE,但我认为 XP/Vista/7 具有与 TZI 类似的结构。可以通过解码一些现有注册表项并查看结构是否匹配来验证这一点。
勇敢的人可以使用 Regedit 创建新的注册表项,使用合适的 TZI“偏差”值定义新时区。然后,他们可以将自己的时区设置为刚刚创建的时区。