Skip to content

Commit 1672798

Browse files
committed
IANA 2026d
2 parents e96461b + 0b5995b commit 1672798

22 files changed

Lines changed: 677 additions & 485 deletions

‎tz/CONTRIBUTING‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ To email small changes, please run a POSIX shell command like
2222
For more-elaborate or possibly controversial changes,
2323
such as renaming, adding or removing zones, please read
2424
“Theory and pragmatics of the tz code and data”
25-
<https://www.iana.org/time-zones/repository/theory.html>.
25+
<https://data.iana.org/time-zones/theory.html>
2626
It is also good to browse the mailing list archives
2727
<https://lists.iana.org/hyperkitty/list/tz@iana.org/>
2828
for examples of patches that tend to work well.

‎tz/Makefile‎

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,9 @@ EXPIRES_LINE= 0
172172

173173
TZDATA_TEXT= leapseconds tzdata.zi
174174

175-
# For backward-compatibility links for old zone names, use
175+
# For backward-compatibility links and zones for old names, use
176176
# BACKWARD= backward
177-
# To omit these links, use
177+
# To omit these links and zones, use
178178
# BACKWARD=
179179

180180
BACKWARD= backward
@@ -574,7 +574,7 @@ SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]'
574574
# These non-alphabetic, non-ASCII printable characters are
575575
# used in commentary or in generated *.txt files
576576
# and are not likely to cause confusion.
577-
UNUSUAL_OK_CHARSET= §«°±»½¾×–‘’“”•→−≤★⟨⟩⯪
577+
UNUSUAL_OK_CHARSET= §«°±»½¾¿×–‘’“”•→−≤★⟨⟩⯪
578578
579579
# Put this in a bracket expression to match spaces.
580580
s = [:space:]
@@ -922,7 +922,7 @@ check_mild: check_web check_zishrink \
922922
UTF8_LOCALE_MISSING = \
923923
{ test ! '$(UTF8_LOCALE)' \
924924
|| ! printf 'A\304\200B\n' \
925-
| LC_ALL='$(UTF8_LOCALE)' grep -q '^A.B$$' >/dev/null 2>&1 \
925+
| LC_ALL='$(UTF8_LOCALE)' grep -q '^A[[:alpha:]]B$$' >/dev/null 2>&1 \
926926
|| { export LC_ALL='$(UTF8_LOCALE)'; false; }; }
927927
928928
character-set.ck: $(ENCHILADA)
@@ -1006,19 +1006,24 @@ now.ck: checknow.awk date tzdata.zi zdump zic zone1970.tab zonenow.tab
10061006
now=$(CHECK_NOW_TIMESTAMP) && \
10071007
future=$$(($(CHECK_NOW_FUTURE_SECS) + $$now)) && \
10081008
./zdump -i -t $$now,$$future \
1009-
$$(find "$$PWD/$@d"/????*/ -type f) \
1009+
$$(find "$$PWD/$@d"/????*/ -type f -o -type l) \
10101010
>$@d/zdump-now.tab && \
10111011
./zdump -i -t 0,$$future \
10121012
$$(find "$$PWD/$@d" -name Etc -prune \
1013-
-o -type f ! -name '*.tab' -print) \
1013+
-o \( -type f -o -type l \) ! -name '*.tab' -print) \
10141014
>$@d/zdump-1970.tab && \
10151015
$(AWK) \
10161016
-v now=$$now \
10171017
-v now_out=$@.out \
10181018
-v zdump_table=$@d/zdump-now.tab \
10191019
-f checknow.awk zonenow.tab
10201020
$(AWK) \
1021-
'BEGIN {print "-\t-\tUTC"} /^Zone/ {print "-\t-\t" $$2}' \
1021+
'BEGIN { \
1022+
SysVzone["EST5EDT"] = 1; SysVzone["CST6CDT"] = 1; \
1023+
SysVzone["MST7MDT"] = 1; SysVzone["PST8PDT"] = 1; \
1024+
print "-\t-\tUTC" \
1025+
} \
1026+
$$1 == "Zone" && !SysVzone[$$2] {print "-\t-\t" $$2}' \
10221027
$(PRIMARY_YDATA) backward factory | \
10231028
$(AWK) \
10241029
-v zdump_table=$@d/zdump-1970.tab \

‎tz/NEWS‎

Lines changed: 114 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,87 @@
11
News for the tz database
22

3+
Release 2026d - 2026-09-11 15:21:07 -0700
4+
5+
Briefly:
6+
Canada’s Northwest Territories moved to permanent -06 on 2026-08-21.
7+
Obsolescent settings like TZ="EST5EDT" now conform better to POSIX.
8+
Fix security, performance and porting bugs in zic and localtime.
9+
10+
Changes to future timestamps
11+
12+
Canada’s Northwest Territories will not fall back on 2026-11-01
13+
and will stay on -06 year-round, matching Alberta’s recent change.
14+
Model this with its traditional abbreviation CST. Although the
15+
change to permanent -06 legally took place on 2026-08-21,
16+
temporarily model the change to occur on 2026-11-01 at 02:00
17+
for the same reason as other recent temporary hacks. (Caution:
18+
see “NOTE FOR 2026b TEMPORARY HACK FOR CLDR AND CANADA” below.)
19+
This affects only America/Inuvik as the rest of the territory is
20+
covered by America/Edmonton, for which the equivalent change was
21+
released in 2026c.
22+
23+
Changes to past timestamps
24+
25+
Colombia’s 1992-05-02 spring forward was at 00:00, not 24:00.
26+
27+
Iran’s 1979-05-26 spring forward was at 00:00, not 24:00.
28+
(Thanks to N.F. Hase.)
29+
30+
The backward-compatibility names EST5EDT, CST6CDT, MST7MDT, and
31+
PST8PDT now conform better to POSIX. For example, EST5EDT now
32+
always uses the abbreviation "EST" for standard time (now always 5
33+
hours behind UT) and "EDT" for daylight saving time, whereas it
34+
formerly had different UT offsets before standard time was
35+
introduced and sometimes used abbreviations like "LMT", "EWT" and
36+
"EPT", all contrary to POSIX. Also, though not required by POSIX
37+
these names now use US federal rules rather than rules of places
38+
like New York, reverting to 2024a behavior. This change affects
39+
only timestamps before 1966-10-30 at 01:00 standard time.
40+
41+
Other data changes
42+
43+
The temporary hacks used for North American timekeeping changes
44+
now work around a libstdc++ std::chrono bug in GCC 14.1-14.4,
45+
15.1-15.2, and 16.1; see GCC bug 124851. This data change does
46+
not affect TZif files or timestamps. The change does not work
47+
around the related but less serious GCC bugs 116110 and 124513.
48+
These GCC bugs are all fixed in GCC 16.2.
49+
50+
Changes to code
51+
52+
zic now rejects Link targets that would have invalid names, and
53+
more efficiently processes Expires, Leap and Rule lines with years
54+
far in the past or future. (Thanks to Darren Carreras.)
55+
56+
zic now ports to systems that report lack of link support via
57+
EINVAL, ENOSYS or EPERM errno values. (Thanks to Tom Lane.)
58+
59+
When tzset and related functions encounter a TZif file that is too
60+
large for them, they now consistently fail instead of sometimes
61+
silently ignoring excess parts of the file.
62+
63+
localtime-related functions no longer mishandle extreme timestamps
64+
when given TZif files holding some unlikely timezone histories.
65+
(Problem reported by David Sarkisyan.)
66+
67+
localtime-related functions no longer check the values of TZif
68+
files’ standard/wall and UT/local indicators, which these
69+
functions have not used since 2026a’s removal of the old
70+
posixrules feature.
71+
72+
tzcode has been ported to Haiku.
73+
74+
localtime.c now works again by default on AIX and DragonFly BSD.
75+
76+
zic now rejects ‘:’ and ‘\’ in Zone and Link names when running on
77+
Microsoft Windows. (Problem reported by David Diaz.)
78+
79+
Changes to documentation
80+
81+
URLs for release tarballs in tz-link.html have been updated to
82+
reflect their new canonical URLs on data.iana.org.
83+
84+
385
Release 2026c - 2026-07-08 10:23:58 -0700
486

587
Briefly:
@@ -15,7 +97,13 @@ Release 2026c - 2026-07-08 10:23:58 -0700
1597
CST. Although the change to permanent -06 legally took place on
1698
2026-06-18, temporarily model the change to occur on 2026-11-01 at
1799
02:00 instead, for the same reason we introduced a similarly
18-
temporary hack for British Columbia in 2026b.
100+
temporary hack for British Columbia in 2026b. (Caution: see
101+
“NOTE FOR 2026b TEMPORARY HACK FOR CLDR AND CANADA” below.)
102+
103+
As the change affects both America/Edmonton and its backward
104+
compatibility link, the obsolescent setting TZ="Canada/Mountain"
105+
will now use the abbreviation CST for affected timestamps,
106+
akin to TZ="Canada/Pacific" behavior introduced in 2026b.
19107

20108
Although another TZDB release will likely be needed soon because
21109
Northwest Territories will likely follow Alberta, the legal
@@ -67,6 +155,7 @@ Release 2026b - 2026-04-22 23:06:43 -0700
67155

68156
Briefly:
69157
British Columbia moved to permanent -07 on 2026-03-09.
158+
zic no longer mishandles a last transition to a new time type.
70159
Some more overflow bugs have been fixed in zic.
71160

72161
Changes to future timestamps
@@ -79,9 +168,33 @@ Release 2026b - 2026-04-22 23:06:43 -0700
79168
limitation in CLDR 48.1 (2026-01-08). This temporary hack is
80169
planned to be removed after CLDR is fixed.
81170

171+
To match longstanding practice for -07 standard time in North
172+
America, such as for America/Dawson, America/Dawson_Creek,
173+
America/Fort_Nelson and America/Whitehorse, affected BC
174+
timestamps use the abbreviation MST. As the change affects both
175+
America/Vancouver and its backward compatibility link, the
176+
obsolescent setting TZ="Canada/Pacific" will now use the
177+
abbreviation MST. Future TZDB releases may change the
178+
abbreviation if something else becomes popular across areas
179+
observing -07, and may change it to "-07" if no alphabetic
180+
consensus emerges.
181+
82182
Changes to code
83183

84184
zic no longer mishandles a last transition to a new time type.
185+
NOTE FOR 2026b TEMPORARY HACK FOR CLDR AND CANADA:
186+
This zic fix is needed for the temporary hack (mentioned above)
187+
that works around the Canadian timekeeping bug in Unicode CLDR.
188+
Without the fix, the temporary hack causes zic versions 2023d
189+
through 2026a, in their default mode that generates slim output,
190+
to generate a TZif file that violates Internet RFC 9636 §3.3.
191+
The buggy file in turn causes some TZif readers, including tzcode
192+
itself, to ignore America/Vancouver’s 2026-11-01 02:00 transition
193+
from PDT (tm_isdst=1) to MST (tm_isdst=0). Although the buggy
194+
file does not cause any known TZif reader to mishandle UT offsets,
195+
caution is advised when using zic 2023d through 2026a to compile
196+
data from more-recent tz releases. To work around this problem
197+
when using these older zic versions, use ‘zic -b fat’.
85198

86199
zic no longer overflows a buffer when generating a TZ string like
87200
"PST-167:59:58PDT-167:59:59,M11.5.6/-167:59:59,M12.5.6/-167:59:59",

‎tz/README‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ locations around the globe. It is updated periodically to reflect
1010
changes made by political bodies to time zone boundaries, UTC offsets,
1111
and daylight-saving rules.
1212

13-
See <https://www.iana.org/time-zones/repository/tz-link.html> or the
13+
See <https://data.iana.org/time-zones/tz-link.html> or the
1414
file tz-link.html for how to acquire the code and data.
1515

1616
Once acquired, read the leading comments in the file ‘Makefile’

‎tz/asia‎

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1544,9 +1544,21 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov
15441544
# leap year calculation involved. There has never been any serious
15451545
# plan to change that law....
15461546
#
1547-
# From Paul Eggert (2022-06-30):
1548-
# Go with Pournader for 1935 through spring 1979, and for timestamps
1549-
# after August 1991; go with with Shanks & Pottenger for other timestamps.
1547+
# From N.F. Hase (2026-07-26):
1548+
# Ettela'at (Tehran daily) printed a daily panel headed "taqvim-e
1549+
# Ettela'at / sa'at-ha-ye shar'i", attributed to Dr. Riyazi Kermani.
1550+
# Each panel gives today's maghrib followed by fajr, sunrise, solar noon
1551+
# and maghrib for the next day, together with the Iranian, Hijri and
1552+
# Gregorian dates.... 26 May 1979 (5 Khordād 1358)
1553+
# https://commons.wikimedia.org/wiki/File:Ettelaat13580305.pdf
1554+
# ... That also matches Movahedi's wording, that the government
1555+
# returned to DST on 26 May, and the note in the 2022 thread that the
1556+
# change was announced one day in advance on 25 May.
1557+
#
1558+
# From Paul Eggert (2026-07-27):
1559+
# Go with Pournader for 1935 through spring 1979 (with the last
1560+
# transition clarified by Hase), and for timestamps after August 1991;
1561+
# go with Shanks & Pottenger for other timestamps.
15501562
# Go with Santoni's citation of the UIT for fall 1977, as 20 October 1977
15511563
# is 28 Mehr 1356, consistent with the "Mehr" in Pournader's source.
15521564
# Assume that the UIT's "1930" is UTC, i.e., 24:00 local time.
@@ -1591,13 +1603,13 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov
15911603
#
15921604
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
15931605
# Work around a bug in zic 2022a and earlier.
1594-
Rule Iran 1910 only - Jan 1 00:00 0 -
1606+
Rule Iran 1910 only - Jan 1 0:00 0 -
15951607
#
15961608
Rule Iran 1977 only - Mar 21 23:00 1:00 -
15971609
Rule Iran 1977 only - Oct 20 24:00 0 -
15981610
Rule Iran 1978 only - Mar 24 24:00 1:00 -
1599-
Rule Iran 1978 only - Aug 5 01:00 0 -
1600-
Rule Iran 1979 only - May 26 24:00 1:00 -
1611+
Rule Iran 1978 only - Aug 5 1:00 0 -
1612+
Rule Iran 1979 only - May 26 0:00 1:00 -
16011613
Rule Iran 1979 only - Sep 18 24:00 0 -
16021614
Rule Iran 1980 only - Mar 20 24:00 1:00 -
16031615
Rule Iran 1980 only - Sep 22 24:00 0 -

‎tz/backward‎

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
# typically use this file for backward compatibility.
1616

1717
# This file is divided into sections, one for each major reason for a
18-
# backward compatibility link. Each section is sorted by link name.
18+
# backward compatibility link or zone. Each section of links is
19+
# sorted by name.
1920

2021
# A "#= TARGET1" comment labels each link inserted only because some
2122
# .zi parsers (including tzcode through 2022e) mishandle links to links.
@@ -46,7 +47,6 @@ Link America/Noronha Brazil/DeNoronha
4647
Link America/Sao_Paulo Brazil/East
4748
Link America/Manaus Brazil/West
4849
Link Europe/Brussels CET
49-
Link America/Chicago CST6CDT
5050
Link America/Halifax Canada/Atlantic
5151
Link America/Winnipeg Canada/Central
5252
# This line is commented out, as the name exceeded the 14-character limit
@@ -63,7 +63,6 @@ Link Pacific/Easter Chile/EasterIsland
6363
Link America/Havana Cuba
6464
Link Europe/Athens EET
6565
Link America/Panama EST
66-
Link America/New_York EST5EDT
6766
Link Africa/Cairo Egypt
6867
Link Europe/Dublin Eire
6968
# Vanguard section, for most .zi parsers.
@@ -104,7 +103,6 @@ Link Pacific/Kwajalein Kwajalein
104103
Link Africa/Tripoli Libya
105104
Link Europe/Brussels MET
106105
Link America/Phoenix MST
107-
Link America/Denver MST7MDT
108106
Link America/Tijuana Mexico/BajaNorte
109107
Link America/Mazatlan Mexico/BajaSur
110108
Link America/Mexico_City Mexico/General
@@ -326,6 +324,52 @@ Link Europe/Kyiv Europe/Kiev
326324
# However, for various reasons many users expect to find it under Europe.
327325
Link Asia/Nicosia Europe/Nicosia
328326
Link Pacific/Honolulu HST
329-
Link America/Los_Angeles PST8PDT
330327
Link Pacific/Guadalcanal Pacific/Ponape #= Pacific/Pohnpei
331328
Link Pacific/Port_Moresby Pacific/Truk #= Pacific/Chuuk
329+
330+
331+
# The backward-compatibility zones PST8PDT, MST7MDT, CST6CDT, and EST5EDT
332+
333+
# Near-copy of US rules in the northamerica file,
334+
# so that this file can be compiled separately.
335+
# To conform to POSIX, this copy uses D instead of W for War and P for Peace.
336+
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
337+
Rule USback 1918 1919 - Mar lastSun 2:00 1:00 D
338+
Rule USback 1918 1919 - Oct lastSun 2:00 0 S
339+
Rule USback 1942 only - Feb 9 2:00 1:00 D # War
340+
Rule USback 1945 only - Aug 14 23:00u 1:00 D # Peace
341+
Rule USback 1945 only - Sep 30 2:00 0 S
342+
Rule USback 1967 2006 - Oct lastSun 2:00 0 S
343+
Rule USback 1967 1973 - Apr lastSun 2:00 1:00 D
344+
Rule USback 1974 only - Jan 6 2:00 1:00 D
345+
Rule USback 1975 only - Feb lastSun 2:00 1:00 D
346+
Rule USback 1976 1986 - Apr lastSun 2:00 1:00 D
347+
Rule USback 1987 2006 - Apr Sun>=1 2:00 1:00 D
348+
Rule USback 2007 max - Mar Sun>=8 2:00 1:00 D
349+
Rule USback 2007 max - Nov Sun>=1 2:00 0 S
350+
351+
# From Arthur David Olson (2005-12-19):
352+
# We generate the files specified below to guard against old files with
353+
# obsolete information being left in the time zone binary directory.
354+
# We limit the list to names that have appeared in previous versions of
355+
# this time zone package.
356+
# We do these as separate Zones rather than as Links to avoid problems if
357+
# a particular place changes whether it observes DST.
358+
#
359+
# From Paul Eggert (2026-07-24):
360+
# These zones are for backward compatibility with Unix System V (1983).
361+
# They are ahistorical, in that they pretend standard time extends
362+
# backward indefinitely into the past.
363+
# They use USback (not US) rules so that they conform to POSIX instead
364+
# of using abbreviations like EWT for Eastern War Time during World War II.
365+
# The zones are here, not in the northamerica file, to lessen
366+
# confusion downstream by making it clear that the zones are present
367+
# only for backward compatibility.
368+
# New software should use settings like TZ='America/New_York' instead
369+
# of these backwards-compatibility zones.
370+
#
371+
# Zone NAME STDOFF RULES FORMAT [UNTIL]
372+
Zone PST8PDT -8:00 USback P%sT
373+
Zone MST7MDT -7:00 USback M%sT
374+
Zone CST6CDT -6:00 USback C%sT
375+
Zone EST5EDT -5:00 USback E%sT

‎tz/backzone‎

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -927,9 +927,10 @@ Zone America/Tortola -4:18:28 - LMT 1911 Jul # Road Town
927927
-4:00 - AST
928928

929929
# Yellowknife, Northwest Territories
930-
Zone America/Yellowknife 0 - -00 1935 # Yellowknife founded?
931-
-7:00 NT_YK M%sT 1980
932-
-7:00 Canada M%sT
930+
# Commented out as too wrong to be useful.
931+
#Zone America/Yellowknife 0 - -00 1935 # Yellowknife founded?
932+
# -7:00 NT_YK M%sT 1980
933+
# -7:00 Canada M%sT
933934

934935
# Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11
935936
# <https://en.wikipedia.org/wiki/Dumont_d'Urville_Station> (2005-12-05)
@@ -1836,12 +1837,8 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
18361837

18371838
# Zone NAME STDOFF RULES FORMAT [UNTIL]
18381839
Zone HST -10:00 - HST
1839-
Zone PST8PDT -8:00 US P%sT
18401840
Zone MST -7:00 - MST
1841-
Zone MST7MDT -7:00 US M%sT
1842-
Zone CST6CDT -6:00 US C%sT
18431841
Zone EST -5:00 - EST
1844-
Zone EST5EDT -5:00 US E%sT
18451842
Zone WET 0:00 EU WE%sT
18461843
Zone CET 1:00 C-Eur CE%sT
18471844
Zone MET 1:00 C-Eur ME%sT

0 commit comments

Comments
 (0)