On 2024-01-06 09:55, Brooks Harris via tz wrote:
in many situations, such as STDOFF shifts, STDOFF shifts simultaneous with DST shifts, or "double summertime" the TzIf values are essentially 'lying'
Surely this goes too far. Whether a particular UT offset is "standard time" or "daylight saving time" (or something else) does not concern ordinary users and is pretty much arbitrary - as witness the disagreement over whether Morocco observes "standard time" or "daylight saving time" for most of the year. To this end, the TZif values are not lying; they're merely limiting themselves to the info needed to display timestamps. What matters to users is "What time is it?". Questions like "Is daylight saving time observed now?", "Is daylight saving ever observed?" and "What is the standard time now, ignoring any DST observance?" are timekeeping nerds' means to that end, not the end itself, and are best left to tzcode's internals. This is why theory.html says "The tm_isdst member is almost never needed and most of its uses should be discouraged....". In hindsight there never should have been a tm_isdst (instead, there should have been tm_gmtoff and tm_zone) though obviously it's too late now to remove tm_isdst.