[PING^2] RFC [PATCH] BZ#1077902: New API gettimezone
Paul Eggert
eggert@cs.ucla.edu
Tue Apr 29 23:37:00 GMT 2014
P J P wrote:
> Do we know why is it completely wrong, when it is wrong?
The TZ string contains a prediction of DST behavior after the rest of
the zoneinfo file's history expires; in general it's incorrect to use
this string at other times. For example, the TZ string at the end of
America/Sao_Paolo is "BRT3BRST,M10.3.0/0,M2.3.0/0", which corresponds to
our best guess for what happens after the year 2038. Unfortunately,
this guess is known to be wrong next year, as Sao Paolo is scheduled to
switch back to standard time on 2015-02-22, not on 2015-02-15. So
shipping TZ="BRT3BRST,M10.3.0/0,M2.3.0/0" to a remote site will
mishandle many time stamps in Brazil.
> Because if without the TZ string or with TZ=UTC0, <time.h> APIs can provide accurate UTC times, then all TZ definition helping us with is the offsets and time frame within an year.
Sorry, I don't understand this comment.
> I said UTC is reasonable when the TZ string is absent from the time zone file. Ie. it is the *last* resort, when no other option is *available/possible*.
I'm afraid no other option is available or possible under reasonable
constraints, if the goal is to have gmtime->localtime conversion on the
remote host exactly match gmtime->localtime conversion with TZ unset on
the local host even if the two hosts don't have identical tz setups.
One way to work around the problem is to arrange for your hosts to have
identical tz setups. That is something you need to do anyway if you
want gmtime->localtime mappings to match on all hosts.
More information about the Libc-alpha
mailing list