On Jul 1, 2011, at 5:45 AM, Clive D.W. Feather wrote:
Guy Harris said:
There *is* no "UTC clock" in POSIX. You cannot use only the POSIX APIs to convert a time_t, as returned by the POSIX time(), to the corresponding UTC time label, where the time label has HH:MM:SS; gmtime() will not do that for you, because gmtime() thinks that every minute ("minute" in the sense of period of time in which the minute counter of a clock ticks over) has exactly 60 seconds, which, for UTC time's minute counter, is not true.
Not quite. The conversion is well-defined,
...in the sense that "we have a formula that takes a time_t and spits out year/month/day/hour/minute/second".
but sometimes two values on one side map to one value on the other side.
...so that there's no way to get the right UTC label for 2008-12-31 23:59:60 out of POSIX. I.e., you cannot use only the POSIX APIs to convert a time_t, as returned by the POSIX time(), to the corresponding UTC time label for all values of time_t.