On 2024-10-28 06:04, Florian Weimer via tz wrote:
Why do you say that the isdst bit is obsolete? The glibc implementation uses in ways that significantly alter application behavior.
tm_isdst was intended for use as an index to the external tzname array. This use is obsolete. Apps that use tzcode or glibc or any other implementation that conforms to POSIX.1-2024 should use struct tm's tm_zone member instead, as tzname does not work for geographical zones, which can have more than two abbreviations. And even apps running on older implementations that conform only to POSIX.1-2017 or earlier should use strftime "%Z" rather than tzname and tm_isdst. The only remaining non-obsolete use of tm_isdst is as a hint to mktime. However, this works only for the proleptic TZ settings like TZ='<-04>4<-03>,M10.1.0/0,M3.4.0/0' required by POSIX.1-2017 and earlier. It does not work in general for geographical settings like TZ='America/Asuncion', because these settings can and do have more than two UT offsets. Although this topic is discussed in theory.html, I see the discussion could be improved a bit and installed the attached.