On Thu, Jun 30, 2011 at 7:24 AM, David Magda <dmagda@ee.ryerson.ca> wrote:
Unix-y systems keep time in POSIX "time scale" (?), and NTP uses UTC.
Given that TAI is neither of these, if one would like to use a time scale that does not experience leap seconds, one need a way of telling the various time routines to translate the internal POSIX/UTC counters to a different "local" time.
As I type this, my TZ=America/Toronto, and so the time is roughly:
Thu Jun 30 07:20:50 EDT 2011 Thu Jun 30 11:20:50 UTC 2011
but if I set TZ=TAI, it would convert my NTP synced computer clock up by 34s:
Thu Jun 30 11:21:24 TAI 2011
So yes, TAI is "just a count of seconds from its offset", but how does one tell a utility like date(1) to add those seconds? Hence my original question: if all these people who can't / don't want to deal with leap seconds want something that ignores it, what option would they have? Would a TZ=TAI be possible?
Use the "right" files, and judiciously place a call to the ado localtime.c:time2posix() in your NTP server. Then all is well. [You may need a time2posix() in other places that assume 60-second minutes, but when I did just that circa 1990 there were but a few.]