On Wed, Apr 8, 2015, at 15:02, Paul_Koning@dell.com wrote:
The Theory file says that POSIX requires leap seconds to be ignored. And indeed, if I set my system timezone to a POSIX zone description and ask it to convert a time value that’s an integer multiple of 86400, I end up at an exact hour (or half hour) multiple, for example exactly midnight if UTC. And similarly, if I set my zone to a “right” one and do the conversion, I get a time that’s a few seconds shy of the exact multiple, as expected.
I can also see that my default timezone definitions on my various Unix machines are POSIX ones, again as expected.
So here is the puzzle. I would expect WWV, and www.time.gov, to reflect leap seconds.
What exactly do you think is meant by "reflect" or "ignore" leap seconds? 2015-04-08 00:00:00 UTC is the same real moment in time whether you use leap seconds or not. The only difference is in what the integer value of time_t corresponding to that moment is (1428451200 or 1428451225). There isn't a separate "no leap second" calendar that stays some number of seconds behind (well, there are in fact several, notably TAI and GPS, but there's no reason to expect WWV or time.gov to use these to report time, nor should anything about POSIX "ignoring leap seconds" be construed to mean POSIX systems use such a system.) When people say POSIX ignores leap seconds, it means that time_t is a multiple of 86400 at midnight UTC, and that there's no way to identify what the actual UTC time is for a time_t which is taken around a leap second. It increments 86400 times in 86401 seconds [some systems may hold the same value for two seconds with or without various tricks done with fractional second reporting either before or during the multiple of 86400, others may have this hour or day composed of "seconds" that are longer than an SI second.]
So why would they give me a time that matches, to the second, the POSIX time on my workstation? Does NTP send POSIX seconds since epoch rather than real ones?
NTP has its own encoding for time values, and its own epoch, and does not use the POSIX format over the wire. WWV has its own encoding for time which includes broken-down hour/minute/second fields. www.time.gov, of course, displays the time in a human-readable format with broken-down fields (it is, AIUI, capable of displaying 60 in the seconds field). Everything has been displayed to you as UTC. The only difference is that POSIX is not capable of representing a UTC time whose seconds value is 60, and defines a linear scale where the difference between each successive day is exactly 86400.