Steven Abner wrote:
The GMT example is an oddity case. GMT can stand both for a time, :Etc/GMT which I assume is the observatory location, and the English Isles regional time zone.
No, it can't. In the British Isles, "GMT" unambiguously refers to UT+0h, never to regional civil time. Likewise, "BST" unambigously refers to UT+1h, never to regional civil time. There is no official name for the regional civil time, but "London time" is the most common term I encounter. London time switches between GMT (UT+0h) and BST (UT+1h) on an annual schedule. Where confusion between the two offsets is possible, we disambiguate by explicitly stating "GMT" or "BST". Most obviously, when London time switches from BST to GMT, as it recently did on 2011-10-30: London time was 01:30 twice in one day, the first time being 01:30 BST and the second (an hour later) being 01:30 GMT. This is not an unusual arrangement for timezone abbreviations, not in any way specific to GMT. The same applies with "EST" and "EDT" in the US, for example. Indeed, this is the point of abbreviations varying according to DST status. Perhaps you've been led astray by Microsoft's timezone database, which incorrectly uses "GMT" as the name for the civil timezone applying in London. More generally, MS's database doesn't distinguish properly between non-DST offset description and zone description.
I am also guessing that that was one of the reasons for UTC, so that an offset of 0 from the observatory would be taken as the offset rather the the time zone the English use.
No. The term "Universal Time" (UT) was promulgated due to an ambiguity in the definition of "GMT", but not the one you imagine (which never existed). The real ambiguity was about whether the hours of the day should be counted from midnight or from noon. Older astronomical practice was to count hours (on any meridian) from noon, and so in the 19th century, in technical contexts, "GMT" mainly meant Greenwich (observatory) time counted from noon, which we would now call UT-12h. Civil practice was to count hours from midnight, so "GMT" had different meanings depending on context. The 1884 meridian conference agreed on the Greenwich meridian as the international prime meridian, and agreed that the universal day should be counted from midnight. The term "Universal Time" was used by then to unambiguously refer to Greenwich time counted from midnight. The British astronomical almanac switched meanings of "GMT" in 1925. Previously they'd used the astronomical convention, but from 1925 they counted hours from midnight while continuing to label the time coordinate as "GMT". So "GMT" became de facto ambiguous even in technical contexts at that point. In 1928 the International Astronomical Union recommended using the term "UT" (with its current meaning) instead of "GMT" (with either meaning), to avoid the ambiguity. Note no "C" on "UT": that didn't exist until the 1960s. Nowadays, of course, no one counts hours from noon. Outside a historical context, "GMT" unambiguously refers to the same thing as "UT". Unless you get into sub-second effects, but that's out of the scope of this discussion. Generally, I think your goal of being able to look up a geographical timezone based on the abbreviations it uses is a sensible one, but creating new names for the zones is not the way to go about it. The lookup should be a separate process, and should have explicit handling for abbreviations used by more than one zone. The abbreviations just don't behave like a namespace for these zones, in addition to them actually naming something other than the geographical zone. -zefram