少于 1 分钟阅读

B站专栏:WinStory#02 消失的波兰——Windows 时区地图的故事​

知乎:https://zhuanlan.zhihu.com/p/613202165

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

Windows XP 的时区设置

注意它的欧洲部分,你会发现,少了一个国家:

波兰(没错,又是波兰)

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

为什么会出现这个 bug ?(当然不是因为它又被瓜分了)

我们要先介绍一下这张地图的历史及它的绘制原理。

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

时区高亮显示

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

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

最终,自 Windows 95 build 842 起,微软禁用了时区高亮显示和单击地图选择时区的功能,而微软禁用它们的手段极其简单:将“所选时区的颜色”也设置为深绿色。

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

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

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

所以,回到波兰,

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

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

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

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

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

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


最终,自 Windows Vista Build 5219 起,微软彻底删去了这张地图。

故事结束。

标签:

更新时间: