[tz] Extra transition for Europe/London with 2023d

Paul Eggert eggert at cs.ucla.edu
Sat Jan 6 03:15:56 UTC 2024


On 1/5/24 16:50, Guy Harris wrote:
> What are some examples of changes that affect STDOFF that do *not* result in transitions in a TZif file?

I don't know of any in 2023d, other than transitions governed by the TZ 
string (which are OK).

As I understand it, this thread is about timestamps like 820454400 
(1996-01-01 00:00:00 UTC) in 2023d's Europe/London. This is a no-op 
transition - "no-op" in the sense that tm_isdst, tm_zone, and tm_gmtoff 
do not change at that instant: they remain 0, "GMT", 0 respectively.

In 2023d timestamps like these can appear as the last explicit timestamp 
in the TZif file, as a marker where the TZ string starts to govern. In 
2023d's Europe/London, all timestamps from 820454400 on are governed by 
Europe/London's TZ string "GMT0BST,M3.5.0/1,M10.5.0".

I wrote earlier that this timestamp could be omitted but I now see that 
I was mistaken. The previous timestamp in Europe/London is 814323600 
(1995-10-22 01:00:00 UTC), a transition from BST to GMT. If we simply 
omitted the 820454400 transition the TZif file would become incorrect, 
since the file's TZ string says that 814323600 is BST, and this would 
disagree with what the previous timestamp transitioned to.

However, the 2023d timestamp 820454400 could be replaced by any 
timestamp from 814928400 (1995-10-29 01:00:00 UTC) through 828233999 
(1996-03-31 00:59:59 UTC) without affecting behavior visible to 
localtime etc.

Better yet, it could be replaced by 828234000 (1996-03-31 01:00:00 UTC) 
so long as the corresponding transition is a real one, to BST, as 
opposed to being a no-op placeholder from GMT to GMT. This would be less 
confusing for TZif readers, because the TZif file would not contain 
these particular no-op transitions. (TZif files still could contain 
other no-op transitions, though; in some cases involving 'zic -r' 
they're unavoidable.)

This is what Derick noted in his original email. That is, he noted that 
2023c Europe/London took the "Better yet" approach mentioned above, 
whereas 2023d Europe/London uses a more-confusing (though still correct) 
transition.



More information about the tz mailing list