* POSIX requires that systems ignore leap seconds. * The tz code attempts to support all the time_t implementations allowed by POSIX. The time_t type represents a nonnegative count of seconds since 1970-01-01 00:00:00 UTC, ignoring leap seconds. In practice, time_t is usually a signed 64- or 32-bit integer; 32-bit signed time_t values stop working after 2038-01-19 03:14:07 UTC, so new implementations these days typically use a signed 64-bit integer. Unsigned 32-bit integers are used on one or two platforms,
and 36-bit integers are also used occasionally.
integers are also used occasionally.
Although earlier POSIX versions allowed time_t to be a floating-point type, this was not supported by any practical systems, and POSIX.1-2013 and the tz code both require time_t to be an integer type. These are the extensions that have been made to the POSIX functions: * The "TZ" environment variable is used in generating the name of a file from which time zone information is read (or is interpreted a la POSIX); "TZ" is no longer constrained to be a three-letter time zone
* Even when all the timestamp transitions recorded by the tz database are correct, the tz rules that generate them may not faithfully reflect the historical rules. For example, from 1922 until World War II the UK moved clocks forward the day following the third Saturday in April unless that was Easter, in which case it moved clocks forward the previous Sunday. Because the tz database has no way to specify Easter, these exceptional years are entered as separate tz Rule lines, even though the legal rules did not change.
* The tz database models pre-standard time using the Gregorian
* The tz database models pre-standard time using the
calendar and local mean time (LMT), but many people used other calendars and other timescales. For example, the Roman Empire used the Julian calendar, and had 12 varying-length daytime hours with a non-hour-based system at night. * Early clocks were less reliable, and data entries do not represent this unreliability. * As for leap seconds, civil time was not based on atomic time before 1972, and we don't know the history of earth's rotation accurately