[tz] OpenJDK/CLDR/ICU/Joda issues with Ireland change
eggert at cs.ucla.edu
Sun Jan 28 19:43:29 UTC 2018
Michael H Deckers wrote:
> POSIX does not say anything about the setting of the tm_isdst member for a given
> TZ string
Yes it does. If what you're saying is that a POSIX implementation can set
tm_isdst=0 during Irish Standard Time when TZ='IST-1GMT0,M10.5.0,M3.5.0/1', then
taking that idea to its logical conclusion a POSIX implementation can set
tm_isdst=0 during Pacific Daylight Time when TZ='PST8PDT,M3.2.0,M11.1.0'. Or the
implementation could go further and set tm_isdst=1 during odd-numbered seconds
and tm_isdst=0 during even-numbered seconds, because "POSIX does not say anything".
That's not how real systems work and that's not how POSIX is intended to work.
POSIX's description of TZ makes it clear that the 'dst' part of the TZ string is
intended for use when daylight saving time (a.k.a. "the alternative timezone")
is in effect, and its description of is_dst under time.h makes it clear that
tm_isdst should be positive when daylight saving time is in effect and zero when
it is not in effect.
More information about the tz