[tz] Did Greenland abolish daylight saving from 2024 on?

Paul Eggert eggert at cs.ucla.edu
Tue Nov 14 20:32:43 UTC 2023


On 2023-11-13 16:48, Guy Harris wrote:
> I see three ways in which tm_isdst can be used:
> 
> 	1) as an indication of whether something known as "daylight saving
> time" or "summer time" or something other than "standard time" is in
> effect;
> 
> 	2) as an indication of whether the offset-from-UTC is advanced from
> what it would be in winter;
> 
> 	3) as an index into the tzname[] array.

(1) is the only thing that tzcode supports.

(2) is incompatible with POSIX if by "advanced" one means "greater 
offset from UT", since POSIX requires so-called "negative" DST for TZ 
settings like TZ='IST-1GMT0,M10.5.0,M3.5.0/1', the current Irish practice.

(3) might be made to work, but it'd mean that in most TZDB Zones, 
tm_isdst would be nonzero for timestamps that pretty much everybody 
would consider to be standard time. For example, tzdata says 
TZ='America/Detroit' has observed standard time with abbreviations 
"LMT", "CST", and "EST" in the past, and at most one of these could get 
tm_isdst==0. Besides, with tzcode time zone abbreviations should not be 
deduced by inspecting tm_isdst. Instead, one should use strftime or (if 
available) the tm_zone member of struct tm. tm_zone is better if it is 
available, which I hope will be required by the next POSIX version.

This is why <https://data.iana.org/time-zones/theory.html#vestigial> 
says "tm_isdst is almost never needed". Its only plausible use these 
days is when calling mktime, and even then it's flaky.



More information about the tz mailing list