a/contrib/tzdata/etcetera +++ b/contrib/tzdata/etcetera @@ -20,7 +20,8 @@ # which load the "UTC" file to handle seconds properly. Zone Etc/UTC 0 - UTC -# Functions like gmtime load the "GMT" file to handle leap seconds properly. +# If leap second support is enabled, functions like gmtime +# load the "GMT" file to handle leap seconds properly. # Vanguard section, which works with most .zi parsers. #Zone GMT 0 - GMT # Rearguard section, for TZUpdater 2.3.2 and earlier. diff --git a/contrib/tzdata/europe b/contrib/tzdata/europe index af5217103845..4127ec9dcf13 100644 --- a/contrib/tzdata/europe +++ b/contrib/tzdata/europe @@ -1041,9 +1041,19 @@ Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn # Greenland # -# From Paul Eggert (2004-10-31): +# From Paul Eggert (2026-01-22): +# During World War II, Greenland was effectively independent of Denmark and +# observed daylight saving time. TIME, volume 37, page 23 (1941-04-21) +# says, +# "Penfield and West made their way to the U.S.'s most northerly consulate. +# They were astonished to find that Greenlanders, with almost 24 hours of +# sunlight a day during the summer, have daylight saving time." +# As the details are unknown they are omitted from the data for now. +# # During World War II, Germany maintained secret manned weather stations in # East Greenland and Franz Josef Land, but we don't know their time zones. +# Also, they're likely out of scope for the database +# as we lack resources to track every bit of military activity. # My source for this is Wilhelm Dege's book mentioned under Svalbard. # # From Paul Eggert (2017-12-10): @@ -1957,7 +1967,6 @@ Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 # Valletta # From Stepan Golosunov (2016-03-07): # the act of the government of the Republic of Moldova Nr. 132 from 1990-05-04 -# http://lex.justice.md/viewdoc.php?action=view&view=doc&id=298782&lang=2 # ... says that since 1990-05-06 on the territory of the Moldavian SSR # time would be calculated as the standard time of the second time belt # plus one hour of the "summer" time. To implement that clocks would be @@ -2012,9 +2021,61 @@ Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 # Valletta # says the 2014-03-30 spring-forward transition was at 02:00 local time. # Guess that since 1997 Moldova has switched one hour before the EU. +# From Heitor David Pinto (2026-02-22): +# Soviet Moldovan resolution 132 of 1990 defined the summer time period from +# the last Sunday in March at 2:00 to the last Sunday in September at 3:00, +# matching the dates used in most of Europe at the time: +# https://web.archive.org/web/20211107050832/http://lex.justice.md/viewdoc.php?action=view&view=doc&id=298782&lang=1 +# +# It seems that in 1996 Moldova changed the end date to October like most of +# Europe, but kept the transitions at 2:00 and 3:00 rather than 1:00 UTC, +# which would have been locally 3:00 and 4:00.... +# +# The notices in the Moldovan government website and broadcaster showed the +# transitions at 2:00 and 3:00 until 2021: +# 2015 https://old.gov.md/en/node/7304 +# 2016 https://old.gov.md/en/node/12587 +# 2017 https://old.gov.md/en/node/20654 +# 2017 https://old.gov.md/en/content/moldova-upholds-winter-time-night-28-29-october +# 2018 https://old.gov.md/en/content/moldova-switch-summer-time +# 2018 https://old.gov.md/en/content/cabinet-ministers-informs-about-switch-winter-time-28-october +# 2019 https://old.gov.md/en/content/moldova-switch-summer-time-31-march +# 2019 https://old.gov.md/en/node/31122 +# 2020 https://old.gov.md/en/node/32771 +# 2020 https://old.gov.md/en/node/34497 +# 2021 https://trm.md/ro/social/moldova-trece-in-aceasta-noapte-la-ora-de-vara +# 2021 https://trm.md/en/social/republica-moldova-trece-la-ora-de-iarna1 +# +# However, since 2022, the notices showed the transitions at 3:00 and 4:00, +# matching the EU rule at 1:00 UTC: +# 2022 https://trm.md/en/social/in-acest-weekend-republica-moldova-trece-la-ora-de-vara +# 2022 https://old.gov.md/en/content/moldova-switch-winter-time +# 2023 https://moldova1.md/p/6587/ora-de-vara-2023-cum-schimbam-acele-ceasornicelor-si-cand-trecem-la-ora-de-vara +# 2023 https://old.gov.md/en/node/46662 +# 2024 https://moldova1.md/p/26535/republica-moldova-trece-la-ora-de-vara-in-acest-weekend +# 2024 https://moldova1.md/p/37768/republica-moldova-trece-in-aceasta-noapte-la-ora-de-iarna +# 2025 https://moldova1.md/p/46349/republica-moldova-trece-la-ora-de-vara-pe-30-martie-cum-ne-afecteaza-si-ce-recomanda-medicii +# 2025 https://moldova1.md/p/60469/republica-moldova-trece-la-ora-de-iarna-ceasurile-se-dau-inapoi-cu-o-ora +# +# It seems that the changes to the end date and transition times were just +# done in practice without formally changing the resolution. In late 2025, the +# government said that the Soviet resolution was still in force, and proposed +# a new resolution to replace it and formally establish the EU rule: +# ... based on the notices, it seems that in practice Moldova already +# uses the EU rule since 2022. This was also the year when Moldova applied to +# join the EU. +# +# From Robert Bastian (2026-02-26): +# This has been approved and published in the government gazette: +# https://monitorul.gov.md/ro/monitorul/view/pdf/3234/part/2#page=27 +# +# From Paul Eggert (2026-02-24): +# Also see Svetlana Rudenko, "Moldova abandons the 'Soviet era'", Logos Press, +# 2026-02-21 . + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S -Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S -Rule Moldova 1997 max - Oct lastSun 3:00 0 - +Rule Moldova 1997 2021 - Mar lastSun 2:00 1:00 S +Rule Moldova 1997 2021 - Oct lastSun 3:00 0 - # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone Europe/Chisinau 1:55:20 - LMT 1880 @@ -2027,7 +2088,8 @@ Zone Europe/Chisinau 1:55:20 - LMT 1880 2:00 Russia EE%sT 1992 2:00 E-Eur EE%sT 1997 # See Romania commentary for the guessed 1997 transition to EU rules. - 2:00 Moldova EE%sT + 2:00 Moldova EE%sT 2022 + 2:00 EU EE%sT # Poland @@ -2413,7 +2475,7 @@ Zone Atlantic/Madeira -1:07:36 - LMT 1884 # Funchal # Nine O'clock # (1998-10-23) reports that the switch occurred at # 04:00 local time in fall 1998. For lack of better info, -# assume that Romania and Moldova switched to EU rules in 1997, +# assume that Romania switched to EU rules in 1997, # the same year as Bulgaria. # # Rule NAME FROM TO - IN ON AT SAVE LETTER/S diff --git a/contrib/tzdata/leap-seconds.list b/contrib/tzdata/leap-seconds.list index 649a22c6278f..0a111845eae4 100644 --- a/contrib/tzdata/leap-seconds.list +++ b/contrib/tzdata/leap-seconds.list @@ -60,15 +60,15 @@ # # The following line shows the last update of this file in NTP timestamp: # -#$ 3960835200 +#$ 3976686858 # # 2) Expiration date of the file given on a semi-annual basis: last June or last December # -# File expires on 28 June 2026 +# File expires on 28 December 2026 # # Expire date in NTP timestamp: # -#@ 3991593600 +#@ 4007404800 # # # LIST OF LEAP SECONDS @@ -117,4 +117,4 @@ # please see the readme file in the 'source' directory : # https://hpiers.obspm.fr/iers/bul/bulc/ntp/sources/README # -#h 49db2447 571e5e1b 2f002a53 9c8da8e4 39b8e49e +#h 2e101270 4e6749f8 2f1792b7 14a0c188 36bb19d6 diff --git a/contrib/tzdata/leapseconds b/contrib/tzdata/leapseconds index 2a42c83efe16..a796e4b4e22e 100644 --- a/contrib/tzdata/leapseconds +++ b/contrib/tzdata/leapseconds @@ -70,7 +70,7 @@ Leap 2016 Dec 31 23:59:60 + S # Any additional leap seconds will come after this. # This Expires line is commented out for now, # so that pre-2020a zic implementations do not reject this file. -#Expires 2026 Jun 28 00:00:00 +#Expires 2026 Dec 28 00:00:00 # Here are POSIX timestamps for the data in this file. # "#updated" gives the last time the leap seconds data changed @@ -79,8 +79,8 @@ Leap 2016 Dec 31 23:59:60 + S # "#expires" gives the first time this file might be wrong; # if this file was derived from the IERS leap-seconds.list, # this is typically a bit less than one year after "updated". -#updated 1751846400 (2025-07-07 00:00:00 UTC) -#expires 1782604800 (2026-06-28 00:00:00 UTC) +#updated 1767698058 (2026-01-06 11:14:18 UTC) +#expires 1798416000 (2026-12-28 00:00:00 UTC) # Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat) -# File expires on 28 June 2026 +# File expires on 28 December 2026 diff --git a/contrib/tzdata/northamerica b/contrib/tzdata/northamerica index 16b79af29b55..3e8641e1c20a 100644 --- a/contrib/tzdata/northamerica +++ b/contrib/tzdata/northamerica @@ -1957,6 +1957,56 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep # https://searcharchives.vancouver.ca/daylight-saving-1918-starts-again-july-7-1941-start-d-s-sept-27-end-of-d-s-1941 # We have no further details, so omit them for now. +# From Arthur David Olson (2026-03-02): +# B. C. Gov News: “Adopting permanent daylight saving time: ‘Spring forward’ +# on March 8 will be the last time change, ending twice-yearly clock changes.” +# https://news.gov.bc.ca/releases/2026AG0013-000209 +# +# From Paul Eggert (2026-03-07): +# The law says that 21 hours after the usual 2026-03-08 02:00 switch from +# PST to PDT, the next day inaugurates the new standard time Pacific Time, +# i.e., just one clock change but two name changes separated by 21 hours. +# PT, the obvious abbreviation for Pacific Time, is one letter too short +# to conform to TZDB’s (and POSIX’s) [-+[:alnum:]]{3,6} requirements. +# I asked the BC government for advice, with no response. For now, do this: +# 1. As a temporary hack, pretend that the BC law takes effect +# not on 2026-03-09 at 00:00, but on 2026-11-01 at 02:00. +# This pretense works around a limitation in CLDR v48.2 (2026-03-17), +# which would otherwise say the interval uses “Pacific Standard Time”. +# (Below, this temporary hack is marked “Temporary hack; see above.”) +# Strictly speaking this hack is incorrect since the interval uses +# standard time, but it does have the right UT offset and it +# works around the CLDR limitation. We should be able to remove +# the temporary hack after CLDR is fixed. +# 2. After the BC law takes effect, model the time as MST sans DST. +# We can change this later if another conforming non-numeric abbreviation +# for Pacific Time becomes more popular. Possibilities include: +# MST - the most compatible with existing software and practice, +# and already used in parts of BC and in Yukon +# PDT - almost as software-friendly, but confusing because it implies +# it is DST and is paired with PST, whereas PT is standard time +# PST - straightforward but even more confusing, +# and will likely break much software that assumes PST is -08 +# -07 - accurate and clear in itself, but makes BC look odd vs neighbors +# CPT, CPST - for Canadian Pacific (Standard) Time, +# by analogy with AEST in Australia +# P-T - conforming approximation to “PT” +# PT+ - like P-T but suggesting one-hour advance over PST + +# From Chris Walton (2026-03-15): +# The Regional District of East Kootenay is planning to move to year-round +# Mountain Standard Time (MST) on November 1, 2026.... +# https://www.rdek.bc.ca/news/entry/rdek_board_moves_to_transition_to_year_round_mountain_standard_time +# (2026-03-17): +# The final decision East Kootenay made a few days ago may turn out not to +# be final after all. They are going to reopen the debate next month! +# https://www.cbc.ca/news/canada/british-columbia/what-time-is-it-in-the-east-kootenay-debate-9.7132624 +# From Paul Eggert (2026-03-17): +# Mayor Steve Fairbairn of Elkford asked the question be called a second time, +# saying, “Pardon the pun, but this is not a time-sensitive issue.” +# For now, merely mention the potential change in these comments. +# If it happens it would likely affect clocks starting 2027-03-14 at 02:00. + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule Vanc 1918 only - Apr 14 2:00 1:00 D Rule Vanc 1918 only - Oct 27 2:00 0 S @@ -1970,7 +2020,11 @@ Rule Vanc 1962 2006 - Oct lastSun 2:00 0 S # Zone NAME STDOFF RULES FORMAT [UNTIL] Zone America/Vancouver -8:12:28 - LMT 1884 -8:00 Vanc P%sT 1987 - -8:00 Canada P%sT + -8:00 Canada P%sT 2026 Mar 9 + # Temporary hack; see above. + -8:00 1:00 PDT 2026 Nov 1 02:00 + # End of temporary hack. + -7:00 - MST Zone America/Dawson_Creek -8:00:56 - LMT 1884 -8:00 Canada P%sT 1947 -8:00 Vanc P%sT 1972 Aug 30 2:00 diff --git a/contrib/tzdata/theory.html b/contrib/tzdata/theory.html index 6e52a929d335..12f4f7f4b439 100644 --- a/contrib/tzdata/theory.html +++ b/contrib/tzdata/theory.html @@ -3,14 +3,16 @@ Theory and pragmatics of the tz code and data +

Theory and pragmatics of the tz code and data

-

Outline