"Mark Davis" <mark.davis@jtcsv.com> writes:
For any given locale, we would disallow a collision between names. Thus for the locale en (English) we can't have AST mean both Alaska Standard Time and Atlantic Standard Time.
That collides with common practice in Australia, which is to use "EST" to denote both "Eastern Standard Time" and "Eastern Summer Time". The tz database attempts to support common practice as much as possible, so if your system doesn't allow this sort of thing you'll have to make some special provision for the discrepancies.
For example "Pacific War Time" should be used for daylight-saving time in Los Angeles from 1942-02-09 through 1945-08-14.
At this point, we are not really interested in translations of the way that certain TZIDs would have been named in the past;
I sense a problem in terminology here. The TZID is the same either way: it's "America/Los_Angeles". The problem is merely that Los Angeles has different names for daylight-saving time, depending on the time stamp in question. Even if I'm writing today, it's incorrect for me to write the phrase "January 20, 1943, at 8:00am Pacific Daylight Time" in Los Angeles: I should write "Pacific War Time" instead. Another example: in 1988 Newfoundland observed double-daylight time (two hours ahead of normal), which the tz database calls "NDDT" instead of the usual "NDT". It could happen again. You may not want to support double-daylight saving time, but if so you should note down the problem somewhere.
I had thought that to get all the timezones that are in use in the world, including those in international waters, wouldn't we have to include the Etc/GMT* ones? Or is this wrong?
In international waters, my understanding is that local time is entirely at the whim of the ship's captain. (So you may have to support all the POSIX TZIDs after all. :-) I suppose the Olson Etc/GMT* TZIDs are better than nothing, but they weren't intended to be (and are not) a complete list of time zone offsets in actual use, whether in international waters or anywhere else.