October 27th, 2006

The great Polish Sea -or- We forgot Poland!

Open up the Date and Time control panel and go to the Time Zones tab. Notice anything wrong with the world map? Take a close look at northern Europe.

Depending on what version of Windows you have, you might see a body of water where Poland should be. Windows 95 didn’t have this problem, but Windows 2000 did. And whether your copy of Windows XP has this problem depends on precisely what version you have.

Where did the great Polish Sea come from?

This weekend marks the end of Summer Time in Europe, and the answer has to do with time zones.

Recall that the Windows 95 control panel highlighted your current time zone on the map. To accomplish this, each time zone was assigned a different label in the time zone bitmap. To draw the map, the portions of the world whose label was the same as the selected time zone were drawn in bright green, and the parts that were different were drawn in dark green. So far so good.

When the highlighting on the time zone map had to be disabled, all that happened was that the “color for the selected time zone” was set to dark green. The code still went through the motions of drawing the time zone in a “different” color, but since the colors were the same at the end of the day, the visual effect was that the highlighting was removed.

To determine which parts of the world are land and which parts are sea, the time zone map enumerated all the time zones as well as the labels associated with each time zone. (You can see them in the registry under “MapID”.) In this way, the land masses of the world gradually emerged from the ocean as the time zones claimed each spot of land one by one.

The shell team did make one fatal mistake, however, obvious in retrospect: It assumed that the world’s time zones would never change. But what happens when a country changes its time zone, as Poland did? At the time Windows 95 was released, Poland was on its own custom time zone, which Windows 95 called “Warsaw Standard Time/Warsaw Daylight Time”, but it didn’t stay that way for long. Just within Windows 95 and Windows 98, Poland’s time zone went by the following names:

  • Windows 95: (GMT+01:00) Warsaw
  • Windows 95: (GMT+01:00) Lisbon, Warsaw
  • Windows 98: (GMT+01:00) Bratislava, Budapest, Ljubljana, Prague, Warsaw
  • Windows 98: (GMT+01:00) Sarajevo, Skopje, Sofija, Warsaw, Zagreb

And that’s not counting the changes that were made in Windows NT, Windows 2000 or Windows XP or their service packs. It’s not that Poland’s time zone actually changed that many times. Rather, the way it was grouped with its neighbors changed. I don’t know why all these changes were made, but I suspect political issues played a major role.

As a result of all this realignment, the “Warsaw Standard Time” time zone disappeared, and with it, its associated land mass. Consequently, the land corresponding to Poland remained underwater. And for some reason, nobody brought this problem to the attention of the shell team until a couple years ago.

In order to fix this, a new world bitmap needed to be made with new labels (labeling the pixels corresponding to Poland as “Central European Time”) so that Poland would once again emerge from the sea. Even though the highlighting is gone, the map code still needs to know where every time zone is so it can raise them from the ocean floor.

Fortunately, all this will soon fall into the mists of history, because Windows Vista has a completely rewritten time zone control panel, so the mistakes of the past can finally be shed. Let’s hope the people who wrote the new time zone control panel remembered Poland.

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

0 comments

Discussion are closed.