I just updated my Windows Live profile, and was horrified to discover that Microsoft has reverted to using Greenwich Mean Time (GMT) instead of Coordinated Universal Time (UTC), in at least one location.
Ever since January 1, 1972, the official worldwide time reference has been UTC.
Since then, GMT has been defined as only the mean solar time at the Royal Observatory in Greenwich, London. It is not tied to international atomic time. The simplest explanation of the differences among the various time definitions is the United States NIST Time and Frequency Division’s FAQ.
The biggest problem is that since 1972, GMT has been not an international time zone, but the name of the winter time zone in the UK. In the summer (daylight saving time) months, the UK time zone is BST, for British Summer Time. Depending on the programmer’s interpretation of whether GMT is a time zone or just another name for UTC, calculations made involving GMT may be shifted by an hour (or not) in a way that makes the resulting time calculation incorrect by one whole hour.
This is bad, and the only way to avoid the confusion is to never use GMT for any time after January 1, 1972.
The GMT Era
GMT was the official worldwide time reference from October 22, 1884 to December 31, 1971. Any reference to international time within those dates must therefore use the label “GMT”, while any references to international time after January 1, 1972 must therefore use “UTC”.
GMT is coequally used as the international time reference by the BBC, and as a time zone in a handful of countries (but be careful trusting TimeAndDate.com, as it does not cite any references).
The UTC Era
Ever since January 1, 1972, UTC has been the official worldwide time standard, and has always been the time standard of the Internet. UTC is defined by the International Telecommunication Union, an agency of the United Nations, in ITU-R Recommendation TF.460-4.
Universal Time=Solar Time
Universal Time (UT) was defined in 1928, as the replacement for GMT’s use as solar time, and its modern incarnation is UT1. So if Microsoft is intending to allow you to set your time zone to the solar-based Universal Time, the label in the listbox above should be “Universal Time (UT1)”, but this would be the official time for only witches, warlocks, and vampires.
The Microsoft Problem
Since all Microsoft operating systems were developed after 1972, they all should have started off using UTC instead of GMT—but they didn’t. DOS started using GMT, and Windows kept with it through Windows XP, and it wasn’t until Windows 7 that Microsoft switched to UTC.
The reason was simple—the time calculations used by DOS and Windows up until Windows 7 did not conform to UTC rules, so labeling Windows XP’s international time as UTC would have been inaccurate. Because UTC’s primary purpose is well-defined accuracy, this would have been inappropriate.
However, Even Windows 7 is not perfect. See the thread Does Windows 7 Support UTC as BIOS time? for commentary on some of the remaining problems.
Yet some inside Microsoft are aware there is a difference between GMT and UTC. The .NET programming system has calls for both, as highlighted in the stackovervlow thread, Difference between UTC and GMT Standard Time in .NET. And the TechNet article Timezone even says “Greenwich Mean Time (GMT) is now known as Coordinated Universal Time (UTC).”
Despite this long-ago switch to UTC, Microsoft continues to use GMT in many different locations, but not all. For instance, the article Microsoft Time Zone Index Values references GMT, while a newer version, Time Zone IDs, references UTC. Interestingly, you will find in the second article, that there are four separate time zones that use or reference UTC:
|1200||GMT Standard Time||(UTC) Dublin, Edinburgh, Lisbon, London|
|1210||Greenwich Standard Time||(UTC) Monrovia, Reykjavik|
|1220||Morocco Standard Time||(UTC) Casablanca|
|1230||UTC||(UTC) Coordinated Universal Time|
Each of these will likely be identical during winter months, but only ID 1230, “UTC”, will result in the true UTC time all year, every year, regardless of what the UK, Monrovia, Iceland, and Casablanca governments do to the definition of when standard and daylight saving times start and end.
The BIOS Problem
The biggest problem resulting from DOS and Windows not handling UTC properly is caused by the early convention of the PC BIOS being set to local time. The best, and most detailed explanation of the problem is by Markus Kuhn, IBM PC Clock should run in UT, although Kuhn mixes up UTC and UT, referencing both, thus confusing the reader which of the two the BIOS should be set to.
This causes big problems if you need to dual-boot Windows and Linux, or Windows and macOS on the same computer, because Windows needs the BIOS set to local time, while Linux and macOS need the BIOS set to UTC time.
Call To Action
- Just Read The Instructions, and stop using GMT everywhere you’re using it now!
- Ask Microsoft to fix any and all remaining problems with handling a BIOS set to UTC with Windows 7 and higher.
- Ask Microsoft to replace its proprietary timezone names with the official Internet TZ Database, managed by ICANN.
Unless you’re a historian or a computer programmer that needs to calculate dates prior to 1972; or you’re referring to the winter time in the United Kingdom, you should not be using GMT for anything. (You will find this rule adhered to in most Wikipedia entries, for example.)