On Thu, Jun 30, 2011 at 07:24:24AM -0400, David Magda <dmagda@ee.ryerson.ca> wrote:
Unix-y systems keep time in POSIX "time scale" (?), and NTP uses UTC.
The ntp protocl does, but it doesn't set your computer clock to UTC but instead repeats the leap second (or uses another method), i.e. the clock will jump back one second on insertion of a leap second (although this requires kernel support, meinberg has some more info at http://www.meinberg.de/english/info/leap-second.htm#os). While this isn't directly POSIX time, it results in a reasonably constant second while at the same time making sure that conversions work as expected.
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.
Conversion between TAI and UTC is not so hard, but conversions between UTC and local time are quite difficult to get right with second accuracy, because translating UTC to local time requires in-depth knowledge of where you are and how and when the respective laws changed. Most countries adopted UTC at different times. See http://www.ucolick.org/~sla/leapsecs/epochtime.html for a practical demonstration. That site shows many of the problems and gives a great historical perspective about these issues (it is also, without doubt, biased :) http://www.ucolick.org/~sla/leapsecs/ http://www.ucolick.org/~sla/leapsecs/timescales.html # history PS: I also think that POSIX got it almost right, even when the seconds are not quite the same length :-) -- The choice of a Deliantra, the free code+content MORPG -----==- _GNU_ http://www.deliantra.net ----==-- _ generation ---==---(_)__ __ ____ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / schmorp@schmorp.de -=====/_/_//_/\_,_/ /_/\_\