Hi Zefram, Thanks for that useful information. Actually marine time zones DO use UT1, because of the link between time and astro (or celestial) navigation. The sign difference is because the conference that set up the nautical time zones intentionally adopted this sign convention, which is unfortunately the opposite of that used for terrestrial time zones - look up in any nautical publication that has time zones, e.g. Admiralty Tide Tables or Admiralty List of Radio Signals, and you will see this specifically maritime sign convention used. I don't know which came first, the maritime or the time zone sign convention, but it is confusing. Tim Smartcom Software Ltd Portsmouth Technopole Kingston Crescent Portsmouth PO2 8FA United Kingdom www.smartcomsoftware.com Smartcom Software is a limited company registered in England and Wales, registered number 05641521. -----Original Message----- From: Zefram [mailto:zefram@fysh.org] Sent: 24 May 2012 16:23 To: Tim Thornton Cc: tz@iana.org Subject: Re: [tz] Maritime time zones Tim Thornton wrote:
Also, it uses GMT (i.e. UT1, not UTC) - I'm not sure if the tz database can cope with this,
The tz database is effectively silent on which flavour of UT is the basis for timezone offsets. Its offsets are not meaningful at a subsecond level. The maritime timezone system also long predates the need to distinguish flavours of UT, and I'd be surprised if it really is specified to use UT1 rather than UTC. So, in any case, the tz database can represent the maritime timezones just fine.
So they could be included in the TZ database
They are. See the zones Etc/GMT-12 to Etc/GMT+12, in the "etcetera" source file. (There are also a couple more fixed-offset zones that are outside the maritime system.) Beware that the sign in the zone's name is the opposite of the offset's sign, due to an historical confusion with the negated-sign aspect of POSIX TZ format. The initialisms of these zones match the names, and do not use the maritime letters. A single-letter initialism would be a problem, because the POSIX TZ format requires initialisms to be at least three characters, so a time-using program might reasonably expect the initialism to be at least three characters. The Theory file has a note about sticking to this. However, aside from the historical fact of them already being in the database, fixed-offset zones are generally out of scope for the tz database. In general if you want a fixed offset, and in particular if you want a fixed offset with an initialism based on the nautical letters, I suggest that you use an actual POSIX TZ value. For example: TZ=seaA-1 TZ=seaM-12 TZ=seaN1 TZ=seaY12 TZ=seaZ0 -zefram