欢迎光临散文网 会员登陆 & 注册

[WinStory #02] 消失的波兰——Windows 时区地图的故事

2022-08-25 09:21 作者:STR-BSOD  | 我要投稿

当你打开 Windows XP 的时区设置时,仔细观察下面这张地图

Windows XP 的时区设置

将其放大,注意它的欧洲部分,

少了一个国家:波兰。

这个 bug 存在于 Windows 98 第一版,Windows 2000,以及 Windows XP 和 Server 2003 的部分版本中。(注:Win9x 系列自 Windows 98 SE build 2150A 起移除了这张地图,因此该 bug 不存在于 Win98 第二版与 WinMe 中,反而是将该问题留到了NT系列中)而 Windows 95 中不存在此问题。

为了理解这个 bug 出现的原因,我们要先回到这张地图的缘起(顺带提下这张地图的绘制原理)

这张地图随时区设置在 Windows 95 build 99 首次引入,之后又引入了“所在时区高亮显示,且能通过点击地图的方式选择时区”的功能,所选时区显示为亮绿色,其他部分为深绿色。区域设置中的地图也有类似的设计。

时区高亮显示

但这个设计给微软带来了一些麻烦。

1995年初,秘鲁和厄瓜多尔之间起了边界冲突,秘鲁政府向微软抱怨边界位置不正确。当然,如果微软同意并将边界向北移动,它会收到厄瓜多尔政府同样的抱怨,要求微软将边界移回。同时,印度政府威胁要在该国禁止微软的 Windows ,因为微软在时区地图上将一个有争议的地区划给了巴基斯坦。微软不得不紧急撤回20万份销往印度的 Windows 95 副本,并为印度制作一个特殊版本的 Windows 95。

最终,自 Windows 95 build 842 (注:虽然该版本的版本号小于 RTM(950 r-6),但它的编译日期实际上要晚于 RTM)起,微软禁用了时区高亮显示和单击地图选择时区的功能,而微软禁用它们的手段极其简单:将“所选时区的颜色”也设置为深绿色。

于是,表面上看,这个功能消失了,这张地图也不再有任何的区域划分,但实际上不是。

这张地图仍然有着时区的划分,而为了确定世界的哪些部分是陆地,哪些部分是水域,时区地图列举了所有时区以及与每个时区关联的标签(可以在注册表中找到)。也就是说,时区的更改会引起这张地图的陆地和海洋更改。

Windows XP 的 timedate.cpl 所保存的世界时区图。在注册表等的作用下,它只在时区地图中显示为两种颜色,表示陆地和水域。

于是,回到波兰,

在 Windows 95 发布时,波兰拥有自己单独的时区,Windows 95 将其称为“华沙标准时间/华沙夏令时间”

但后来,波兰的时区变成了:

  • (GMT+01:00) 贝尔格莱德,布拉迪斯拉发、布达佩斯、卢布尔雅那、布拉格、华沙

  • (GMT+01:00) 萨拉热窝、斯科普里、索菲亚、华沙、萨格勒布

所以,“华沙标准时间”时区消失了,与之相关的陆地也随之消失。因此,波兰在地图上显示为水域。

而为了解决这个问题,需要使用新标签制作新的世界位图(将与波兰对应的像素标记为“中欧时间”),以便波兰再次从海中出现。


最终,(WinNT系列)自 Windows Vista Build 5219 起,微软移除了这张地图。

故事结束。



参考资料:

雷蒙德 · 陈《为什么我的时区没有在世界地图上突出显示?》https://devblogs.microsoft.com/oldnewthing/20030822-00/?p=42823

雷蒙德 · 陈《伟大的波兰海——或者——我们忘记了波兰!》

https://devblogs.microsoft.com/oldnewthing/20061027-00/?p=29213

[WinStory #02] 消失的波兰——Windows 时区地图的故事的评论 (共 条)

分享到微博请遵守国家法律