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

brian.inglis at systematicsw.ab.ca brian.inglis at systematicsw.ab.ca
Tue Jan 2 18:25:44 UTC 2024


On 2024-01-02 04:29, Derick Rethans via tz wrote:
> Hi,
> I have just updated the tzdb for PHP, and one of our tests started
> failing, and it turned out due to an unexpected data change:
> Previously, the following transitions existed:
>> 1994-03-27 01:00:00 UT (           764730000) =   1 [  3600 1   4 'BST' (0,0)]
> 1994-10-23 01:00:00 UT (           782874000) =   2 [     0 0   8 'GMT' (0,0)]
> 1995-03-26 01:00:00 UT (           796179600) =   1 [  3600 1   4 'BST' (0,0)]
> 1995-10-22 01:00:00 UT (           814323600) =   2 [     0 0   8 'GMT' (0,0)]
> 1996-03-31 01:00:00 UT (           828234000) =   1 [  3600 1   4 'BST' (0,0)]
>                                             POSIX string: GMT0BST,M3.5.0/1,M10.5.0
>                                             std:   2 [     0 0   8 'GMT' (0,0)]
>                                             dst:   1 [  3600 1   4 'BST' (0,0)]
> But now, they include an extra one for Jan 1st, 1996, with the March 31st one
> now not being the last one:
>> 1994-03-27 01:00:00 UT (           764730000) =   1 [  3600 1   4 'BST' (0,0)]
> 1994-10-23 01:00:00 UT (           782874000) =   2 [     0 0   8 'GMT' (0,0)]
> 1995-03-26 01:00:00 UT (           796179600) =   1 [  3600 1   4 'BST' (0,0)]
> 1995-10-22 01:00:00 UT (           814323600) =   2 [     0 0   8 'GMT' (0,0)]
> 1996-01-01 00:00:00 UT (           820454400) =   2 [     0 0   8 'GMT' (0,0)]
>                                             POSIX string: GMT0BST,M3.5.0/1,M10.5.0
>                                             std:   2 [     0 0   8 'GMT' (0,0)]
>                                             dst:   1 [  3600 1   4 'BST' (0,0)]
> I couldn't find anywhere in tzfile.5 or theory.html whether the last
> generated transition must match a transition as specified with the POSIX
> string (as it did with 2023c and earlier), but I vaguely remember having
> read such a thing when I implemented the POSIX string parsing logic.
> As far as I know so-far, the only effect it has on PHP users is
> that they will now see an extra transition when they enumerate them (the
> 1996-01-01 is inserted).
> I think I am mostly flagging this up because this was an unexpected change.
Check your installed data or paths and conversion code!
There was a leap second at that time, and regularly during the 1990s, so you 
seem to be using right/Europe/London:

$ zdump -Vc1994,1998 right/Europe/London
right/Europe/London  Sun Mar 27 01:00:17 1994 UT = Sun Mar 27 00:59:59 1994 GMT 
isdst=0 gmtoff=0
right/Europe/London  Sun Mar 27 01:00:18 1994 UT = Sun Mar 27 02:00:00 1994 BST 
isdst=1 gmtoff=3600
right/Europe/London  Fri Jul  1 00:00:18 1994 UT = Fri Jul  1 00:59:60 1994 BST 
isdst=1 gmtoff=3600
right/Europe/London  Fri Jul  1 00:00:19 1994 UT = Fri Jul  1 01:00:00 1994 BST 
isdst=1 gmtoff=3600
right/Europe/London  Sun Oct 23 01:00:18 1994 UT = Sun Oct 23 01:59:59 1994 BST 
isdst=1 gmtoff=3600
right/Europe/London  Sun Oct 23 01:00:19 1994 UT = Sun Oct 23 01:00:00 1994 GMT 
isdst=0 gmtoff=0
right/Europe/London  Sun Mar 26 01:00:18 1995 UT = Sun Mar 26 00:59:59 1995 GMT 
isdst=0 gmtoff=0
right/Europe/London  Sun Mar 26 01:00:19 1995 UT = Sun Mar 26 02:00:00 1995 BST 
isdst=1 gmtoff=3600
right/Europe/London  Sun Oct 22 01:00:18 1995 UT = Sun Oct 22 01:59:59 1995 BST 
isdst=1 gmtoff=3600
right/Europe/London  Sun Oct 22 01:00:19 1995 UT = Sun Oct 22 01:00:00 1995 GMT 
isdst=0 gmtoff=0
right/Europe/London  Mon Jan  1 00:00:19 1996 UT = Sun Dec 31 23:59:60 1995 GMT 
isdst=0 gmtoff=0
right/Europe/London  Mon Jan  1 00:00:20 1996 UT = Mon Jan  1 00:00:00 1996 GMT 
isdst=0 gmtoff=0
right/Europe/London  Sun Mar 31 01:00:19 1996 UT = Sun Mar 31 00:59:59 1996 GMT 
isdst=0 gmtoff=0
right/Europe/London  Sun Mar 31 01:00:20 1996 UT = Sun Mar 31 02:00:00 1996 BST 
isdst=1 gmtoff=3600
right/Europe/London  Sun Oct 27 01:00:19 1996 UT = Sun Oct 27 01:59:59 1996 BST 
isdst=1 gmtoff=3600
right/Europe/London  Sun Oct 27 01:00:20 1996 UT = Sun Oct 27 01:00:00 1996 GMT 
isdst=0 gmtoff=0
right/Europe/London  Sun Mar 30 01:00:19 1997 UT = Sun Mar 30 00:59:59 1997 GMT 
isdst=0 gmtoff=0
right/Europe/London  Sun Mar 30 01:00:20 1997 UT = Sun Mar 30 02:00:00 1997 BST 
isdst=1 gmtoff=3600
right/Europe/London  Tue Jul  1 00:00:20 1997 UT = Tue Jul  1 00:59:60 1997 BST 
isdst=1 gmtoff=3600
right/Europe/London  Tue Jul  1 00:00:21 1997 UT = Tue Jul  1 01:00:00 1997 BST 
isdst=1 gmtoff=3600
right/Europe/London  Sun Oct 26 01:00:20 1997 UT = Sun Oct 26 01:59:59 1997 BST 
isdst=1 gmtoff=3600
right/Europe/London  Sun Oct 26 01:00:21 1997 UT = Sun Oct 26 01:00:00 1997 GMT 
isdst=0 gmtoff=0

but there is no change visible with zdump on default or POSIX 2023d:

$ zdump -Vc1994,1998 Europe/London
zdump -Vc1997,2025 -Vc1994,1998 Europe/London
Europe/London  Sun Mar 27 00:59:59 1994 UT = Sun Mar 27 00:59:59 1994 GMT 
isdst=0 gmtoff=0
Europe/London  Sun Mar 27 01:00:00 1994 UT = Sun Mar 27 02:00:00 1994 BST 
isdst=1 gmtoff=3600
Europe/London  Sun Oct 23 00:59:59 1994 UT = Sun Oct 23 01:59:59 1994 BST 
isdst=1 gmtoff=3600
Europe/London  Sun Oct 23 01:00:00 1994 UT = Sun Oct 23 01:00:00 1994 GMT 
isdst=0 gmtoff=0
Europe/London  Sun Mar 26 00:59:59 1995 UT = Sun Mar 26 00:59:59 1995 GMT 
isdst=0 gmtoff=0
Europe/London  Sun Mar 26 01:00:00 1995 UT = Sun Mar 26 02:00:00 1995 BST 
isdst=1 gmtoff=3600
Europe/London  Sun Oct 22 00:59:59 1995 UT = Sun Oct 22 01:59:59 1995 BST 
isdst=1 gmtoff=3600
Europe/London  Sun Oct 22 01:00:00 1995 UT = Sun Oct 22 01:00:00 1995 GMT 
isdst=0 gmtoff=0
Europe/London  Sun Mar 31 00:59:59 1996 UT = Sun Mar 31 00:59:59 1996 GMT 
isdst=0 gmtoff=0
Europe/London  Sun Mar 31 01:00:00 1996 UT = Sun Mar 31 02:00:00 1996 BST 
isdst=1 gmtoff=3600
Europe/London  Sun Oct 27 00:59:59 1996 UT = Sun Oct 27 01:59:59 1996 BST 
isdst=1 gmtoff=3600
Europe/London  Sun Oct 27 01:00:00 1996 UT = Sun Oct 27 01:00:00 1996 GMT 
isdst=0 gmtoff=0
Europe/London  Sun Mar 30 00:59:59 1997 UT = Sun Mar 30 00:59:59 1997 GMT 
isdst=0 gmtoff=0
Europe/London  Sun Mar 30 01:00:00 1997 UT = Sun Mar 30 02:00:00 1997 BST 
isdst=1 gmtoff=3600
Europe/London  Sun Oct 26 00:59:59 1997 UT = Sun Oct 26 01:59:59 1997 BST 
isdst=1 gmtoff=3600
Europe/London  Sun Oct 26 01:00:00 1997 UT = Sun Oct 26 01:00:00 1997 GMT 
isdst=0 gmtoff=0

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                 -- Antoine de Saint-Exupéry



More information about the tz mailing list