[tz] OpenJDK/CLDR/ICU/Joda issues with Ireland change

Paul Eggert 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 mailing list