git: 819af80de8e8 - stable/14 - contrib/tzdata: import tzdata 2026c
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 11 Jul 2026 09:52:47 UTC
The branch stable/14 has been updated by philip:
URL: https://cgit.FreeBSD.org/src/commit/?id=819af80de8e8854f5767c20d03cb7362624b0085
commit 819af80de8e8854f5767c20d03cb7362624b0085
Author: Philip Paeps <philip@FreeBSD.org>
AuthorDate: 2026-07-08 20:46:28 +0000
Commit: Philip Paeps <philip@FreeBSD.org>
CommitDate: 2026-07-11 09:49:21 +0000
contrib/tzdata: import tzdata 2026c
Changes: https://github.com/eggert/tz/blob/2026c/NEWS
(cherry picked from commit 665bb2d9a440d33e2ec2f9151e45b8cda93433ae)
---
contrib/tzdata/Makefile | 45 ++++-----
contrib/tzdata/NEWS | 79 ++++++++++++++--
contrib/tzdata/africa | 191 +++++++--------------------------------
contrib/tzdata/australasia | 2 +-
contrib/tzdata/europe | 21 +++--
contrib/tzdata/leap-seconds.list | 8 +-
contrib/tzdata/leapseconds | 8 +-
contrib/tzdata/northamerica | 121 ++++++++++++++++++++++---
contrib/tzdata/theory.html | 18 ++--
contrib/tzdata/version | 2 +-
contrib/tzdata/ziguard.awk | 8 +-
contrib/tzdata/zone.tab | 2 +-
contrib/tzdata/zone1970.tab | 2 +-
contrib/tzdata/zonenow.tab | 9 +-
14 files changed, 272 insertions(+), 244 deletions(-)
diff --git a/contrib/tzdata/Makefile b/contrib/tzdata/Makefile
index 1e0a5903534d..f5a22f1896a4 100644
--- a/contrib/tzdata/Makefile
+++ b/contrib/tzdata/Makefile
@@ -114,7 +114,7 @@ ZDUMPDIR = $(BINDIR)
# The "zic" command goes in:
ZICDIR = $(TOPDIR)/$(USRDIR)/sbin
-# Manual pages go in subdirectories of. . .
+# Manual pages go in subdirectories of:
MANDIR = $(TOPDIR)/$(USRSHAREDIR)/man
# Library functions are put in an archive in LIBDIR.
@@ -145,7 +145,7 @@ TIME_T_ALTERNATIVES_TAIL = int_least32_t.ck uint_least32_t.ck \
# nonnegative TZ_CHANGE_INTERVAL also assumes this, so to be compatible with
# these, use "posix_only" or "posix_right". Use POSIX time on systems with
# leap smearing; this can work better than unsmeared "right" time with
-# applications that are not leap second aware, and is closer to unsmeared
+# applications that are not aware of leap seconds, and is closer to unsmeared
# "right" time than unsmeared POSIX time is (e.g., 0.5 vs 1.0 s max error).
REDO= posix_only
@@ -295,10 +295,10 @@ LDLIBS=
# -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires;
# not needed by the main-program tz code, which is single-threaded.
# Append other compiler flags as needed, e.g., -pthread on GNU/Linux.
-# The following options can also be used:
+# With -DTHREAD_SAFE the following options can also be used:
# -DTHREAD_PREFER_SINGLE to prefer speed in single-threaded apps,
# at some cost in CPU time and energy in multi-threaded apps.
-# The following options can also be used:
+# With -DTHREAD_PREFER_SINGLE the following options can also be used:
# -DHAVE___ISTHREADED=1 if there is an extern int __isthreaded
# variable, 0 otherwise (default is guessed)
# -DHAVE_SYS_SINGLE_THREADED_H=0 if <sys/single_threaded.h> works,
@@ -377,12 +377,13 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 \
-Wdeclaration-after-statement -Wdouble-promotion \
-Wduplicated-branches -Wduplicated-cond -Wflex-array-member-not-at-end \
-Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \
- -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op \
+ -Wfree-labels -Wimplicit-fallthrough=5 -Winit-self \
+ -Wkeyword-macro -Wlogical-op \
-Wmissing-declarations -Wmissing-prototypes \
-Wmissing-variable-declarations -Wnested-externs \
-Wnull-dereference \
-Wold-style-definition -Woverlength-strings -Wpointer-arith \
- -Wshadow -Wshift-overflow=2 -Wstrict-overflow \
+ -Wshadow -Wshift-overflow=2 \
-Wstrict-prototypes -Wstringop-overflow=4 \
-Wsuggest-attribute=cold \
-Wsuggest-attribute=const -Wsuggest-attribute=format \
@@ -533,7 +534,7 @@ ZIC_INSTALL= $(ZIC) -d '$(DESTDIR)$(TZDIR)'
# mawk 1.3.3 and Solaris 10 /usr/bin/awk do not work.
# Also, it is better (though not essential) if 'awk' supports UTF-8,
# and unfortunately mawk and busybox awk do not support UTF-8.
-# Try AWK=gawk or AWK=nawk if your awk has the abovementioned problems.
+# Try AWK=gawk or AWK=nawk if your awk has the problems mentioned above.
AWK= awk
# The full path name of a POSIX-compliant shell, preferably one that supports
@@ -913,7 +914,7 @@ tzselect: tzselect.ksh version
check: check_mild back.ck now.ck
check_mild: check_web check_zishrink \
character-set.ck white-space.ck links.ck mainguard.ck \
- name-lengths.ck slashed-abbrs.ck sorted.ck \
+ name-lengths.ck news.ck slashed-abbrs.ck sorted.ck \
tables.ck ziguard.ck tzs.ck
# True if UTF8_LOCALE does not work;
@@ -1083,6 +1084,12 @@ zishrink-posix.ck zishrink-right.ck: \
rm -fr $@d t-$@d shrunk-$@d
touch $@
+# Check that NEWS has data release versions and dates in reverse order.
+news.ck: NEWS
+ grep '^Release [0-9][0-9][0-9][0-9]' NEWS | LC_ALL=C sort -cru
+ sed -n '/ -0000$$/!s/^Release [^ ]*//p' NEWS|LC_ALL=C sort -cru
+ touch $@
+
clean_misc:
rm -fr *.ckd *.dir
rm -f *.ck *.core *.o *.out *.t core core.* \
@@ -1139,7 +1146,8 @@ SET_TIMESTAMP_N = sh -c '\
# If DEST depends on A B C ... in this Makefile, callers should use
# $(SET_TIMESTAMP_DEP) DEST A B C ..., for the benefit of any
# downstream 'make' that considers equal timestamps to be out of date.
-# POSIX allows this 'make' behavior, and HP-UX 'make' does it.
+# POSIX allows this 'make' behavior, although only HP-UX 'make'
+# (which is no longer supported) did things that way.
# If all that matters is that the timestamp be reproducible
# and plausible, use $(SET_TIMESTAMP).
SET_TIMESTAMP = $(SET_TIMESTAMP_N) 0
@@ -1399,24 +1407,6 @@ $(ALL_ASC):
$(SET_TIMESTAMP) $(@:.t=) $(?:.t=)
touch $@
-TYPECHECK_CFLAGS = $(CFLAGS) -DTYPECHECK -D__time_t_defined -D_TIME_T
-typecheck: long-long.ck unsigned.ck
-long-long.ck unsigned.ck: $(VERSION_DEPS)
- rm -fr $@d
- mkdir $@d
- ln $(VERSION_DEPS) $@d
- cd $@d && \
- case $@ in \
- long-long.*) i="long long";; \
- unsigned.* ) i="unsigned" ;; \
- esac && \
- $(MAKE) \
- CFLAGS="$(TYPECHECK_CFLAGS) \"-Dtime_t=$$i\"" \
- TOPDIR="$$PWD" \
- install
- $@d/zdump -i -c 1970,1971 Europe/Rome
- touch $@
-
zonenames: tzdata.zi
@$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi
@@ -1442,6 +1432,5 @@ zic.o: private.h tzdir.h tzfile.h version.h
.PHONY: traditional_signatures traditional_signatures_version
.PHONY: traditional_tarballs traditional_tarballs_version
.PHONY: tailored_tarballs tailored_tarballs_version
-.PHONY: typecheck
.PHONY: zonenames zones
.PHONY: $(ZDS)
diff --git a/contrib/tzdata/NEWS b/contrib/tzdata/NEWS
index a0042701c687..dd962b54d529 100644
--- a/contrib/tzdata/NEWS
+++ b/contrib/tzdata/NEWS
@@ -1,6 +1,69 @@
News for the tz database
-Release 2026a - 2026-04-22 23:06:43 -0700
+Release 2026c - 2026-07-08 10:23:58 -0700
+
+ Briefly:
+ Alberta moved to permanent -06 on 2026-06-18.
+ Morocco moves to permanent +00 on 2026-09-20.
+ More integer overflow bugs have been fixed in zic.
+
+ Changes to future timestamps
+
+ Alberta’s 2026-03-08 spring forward was its last foreseeable clock
+ change, as it moved to permanent -06 thereafter. (Thanks to Roozbeh
+ Pournader and others.) Model this with its traditional abbreviation
+ CST. Although the change to permanent -06 legally took place on
+ 2026-06-18, temporarily model the change to occur on 2026-11-01 at
+ 02:00 instead, for the same reason we introduced a similarly
+ temporary hack for British Columbia in 2026b.
+
+ Although another TZDB release will likely be needed soon because
+ Northwest Territories will likely follow Alberta, the legal
+ formalities have not yet taken place.
+
+ Morocco plans to move back to permanent UTC, without daylight
+ saving time transitions, on 2026-09-20 at 02:00. This also
+ affects Western Sahara.
+
+ Changes to code
+
+ zic no longer overflows integers when processing outlandish input
+ like ‘Zone Ouch 0 - LMT 9223372036854775807’, ‘Zone Ouch 0
+ 2562047788015215 LMT’, ‘Zone Ouch -2562047788015215:30:08 - LMT’,
+ and ‘Zone Ouch -2562047788015215:30:08 - %%z’. This avoids
+ undefined behavior in C. (Problems reported by Naveed Khan.)
+
+ On platforms that have EFTYPE, tzalloc now fails with errno set to
+ EFTYPE, not EINVAL, if it detects that the TZif file has an
+ invalid format or is not a regular file. Formerly it did this
+ only on NetBSD, and only when the file was not a regular file.
+
+ Unprivileged programs no longer require TZif files to be regular
+ files or reject relative names containing ".." components. This
+ reverts to the more-permissive 2025b behavior, as the stricter
+ behavior did not catch on in FreeBSD.
+
+ zic now reports any failure to remove a temporary file when
+ cleaning up after a previous failure. (Problem reported by Tom
+ Lane.)
+
+ Changes to commentary
+
+ Northwest Territories is expected to move to permanent -06 prior to
+ 2026-11-01 02:00, when clocks would otherwise fall back. (Thanks to
+ Tim Parenti and James Bellaire.) Model this with its traditional
+ abbreviation CST. Unfortunately the change is not yet official, so
+ it is currently present only as comments that can be uncommented as
+ needed.
+
+ Changes to build procedure
+
+ The undocumented ‘typecheck’ Makefile check rule has been removed.
+ It stopped working in 2025a and evidently nobody noticed.
+ The rule was superseded by ‘check_time_t_alternatives’ in 2013d.
+
+
+Release 2026b - 2026-04-22 23:06:43 -0700
Briefly:
British Columbia moved to permanent -07 on 2026-03-09.
@@ -13,7 +76,7 @@ Release 2026a - 2026-04-22 23:06:43 -0700
(Thanks to Arthur David Olson.) Although the change to permanent
-07 legally took place on 2026-03-09, temporarily model the change
to occur on 2026-11-01 at 02:00 instead. This works around a
- limitation in CLDR v48.2 (2026-03-17). This temporary hack is
+ limitation in CLDR 48.1 (2026-01-08). This temporary hack is
planned to be removed after CLDR is fixed.
Changes to code
@@ -99,7 +162,7 @@ Release 2026a - 2026-03-01 22:59:49 -0800
than attempting to override this fallback with the contents of the
posixrules file. This removes library support that was declared
obsolete in release 2019b, and fixes some undefined behavior.
- (Undefined behavior reported by GitHub user Naveed8951.)
+ (Undefined behavior reported by Naveed Khan.)
The posix2time, posix2time_z, time2posix, and time2posix_z
functions now set errno=EOVERFLOW and return ((time_t) -1) if the
@@ -111,7 +174,7 @@ Release 2026a - 2026-03-01 22:59:49 -0800
Some other undefined behavior, triggered by TZif files containing
outlandish but conforming UT offsets or leap second corrections,
- has also been fixed. (Some of these bugs reported by Naveed8951.)
+ has also been fixed. (Some of these bugs reported by Naveed Khan.)
localtime.c no longer rejects TZif files that exactly fit in its
internal structures, fixing off-by-one typos introduced in 2014g.
@@ -221,7 +284,7 @@ Release 2025c - 2025-12-10 14:42:37 -0800
rarely changing and many threads call tzcode simultaneously.
It costs more CPU time and energy.
- The new CFLAGS option -TTHREAD_TM_MULTI causes localtime to return
+ The new CFLAGS option -DTHREAD_TM_MULTI causes localtime to return
a pointer to thread-specific memory, as FreeBSD does, instead of
to the same memory in all threads. This supports nonportable
programs that incorrectly use localtime instead of localtime_r.
@@ -551,7 +614,7 @@ Release 2024a - 2024-02-01 09:28:56 -0800
The leap-seconds.list file is now copied from the IERS instead of
from its downstream counterpart at NIST, as the IERS version is
now in the public domain too and tends to be more up-to-date.
- (Thanks to Martin Burnicki for liaisoning with the IERS.)
+ (Thanks to Martin Burnicki for liaising with the IERS.)
Changes to documentation
@@ -1709,7 +1772,7 @@ Release 2020a - 2020-04-23 16:03:47 -0700
zic -L now supports an Expires line in the leapseconds file, and
truncates the TZif output accordingly. This propagates leap
second expiration information into the TZif file, and avoids the
- abovementioned localtime.c bug as well as similar bugs present in
+ localtime.c bug mentioned above, as well as similar bugs present in
many client implementations. If no Expires line is present, zic
-L instead truncates the TZif output based on the #expires comment
present in leapseconds files distributed by tzdb 2018f and later;
@@ -6666,7 +6729,7 @@ few (e.g., code2012c-data2012d) have tarballs with mixed version
numbers. Recent releases also come in an experimental format
consisting of a single tarball tzdb-R.tar.lz with extra data.
-Release timestamps are taken from the release's commit (for newer,
+A release’s timestamp is taken from the release’s commit (for newer,
Git-based releases), from the newest file in the tarball (for older
releases, where this info is available) or from the email announcing
the release (if all else fails; these are marked with a time zone
diff --git a/contrib/tzdata/africa b/contrib/tzdata/africa
index ec067bee524d..2965736a0b0e 100644
--- a/contrib/tzdata/africa
+++ b/contrib/tzdata/africa
@@ -597,6 +597,24 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
# Morocco
# See Africa/Ceuta for Spanish Morocco.
+# From Paul Eggert (2026-06-26):
+# In “Morocco’s GMT+1, a century of shifting time and a debate far from over”
+# https://en.yabiladi.com/articles/details/191310/morocco-s-gmt1-century-shifting-time
+# (2026-03-30), Yabiladi’s Latifa Babas reports the following:
+# * A 1913-10-26 royal dahir established GMT as legal time in Morocco.
+# * A 1918-05-10 dahir instituted DST on 1918-05-16 at 00:00.
+# * A September 1939 dahir restarted DST on 1939-09-12.
+# * A February 1940 dahir restarted DST as early as 1940-02-25.
+# * Standard time resumed in September 1946.
+# * A June 1950 decree restarted DST, which ran until as late as October.
+# * Royal decree 455-67 (1967-06-02) restarted DST on June 3 at noon.
+# * After 1967 Morocco used DST “during several summers, particularly
+# throughout the 1970s and 1980s.”
+# Babas consulted official records that disagree with and are surely
+# more correct than our pre-2008 timestamp data, which came from the
+# unreliable Shanks & Pottenger. Unfortunately, Babas did not provide
+# enough detail to correct our data.
+
# From Alex Krivenyshev (2008-05-09):
# Here is an article that Morocco plan to introduce Daylight Saving Time between
# 1 June, 2008 and 27 September, 2008.
@@ -850,33 +868,16 @@ Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
# The return to legal GMT time will take place this Sunday, March 19 at 3 a.m.
# ... the return to GMT+1 will be made on Sunday April 23, 2023 at 2 a.m.
# https://www.mmsp.gov.ma/fr/actualites/passage-à-l%E2%80%99heure-gmt-à-partir-du-dimanche-19-mars-2023
-#
-# From Paul Eggert (2023-03-14):
-# For now, guess that in the future Morocco will fall back at 03:00
-# the last Sunday before Ramadan, and spring forward at 02:00 the
-# first Sunday after one day after Ramadan. To implement this,
-# transition dates and times for 2019 through 2087 were determined by
-# running the following program under GNU Emacs 28.2. (This algorithm
-# also produces the correct transition dates for 2016 through 2018,
-# though the times differ due to Morocco's time zone change in 2018.)
-# (let ((islamic-year 1440))
-# (require 'cal-islam)
-# (while (< islamic-year 1511)
-# (let ((a (calendar-islamic-to-absolute (list 9 1 islamic-year)))
-# (b (+ 1 (calendar-islamic-to-absolute (list 10 1 islamic-year))))
-# (sunday 0))
-# (while (/= sunday (mod (setq a (1- a)) 7)))
-# (while (/= sunday (mod b 7))
-# (setq b (1+ b)))
-# (setq a (calendar-gregorian-from-absolute a))
-# (setq b (calendar-gregorian-from-absolute b))
-# (insert
-# (format
-# (concat "Rule\tMorocco\t%d\tonly\t-\t%s\t%2d\t 3:00\t-1:00\t-\n"
-# "Rule\tMorocco\t%d\tonly\t-\t%s\t%2d\t 2:00\t0\t-\n")
-# (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a))
-# (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
-# (setq islamic-year (+ 1 islamic-year))))
+
+# From Paul Eggert (2026-06-25):
+# https://www.moroccoworldnews.com/2026/06/325034/confirmed-morocco-to-restore-gmt-on-september-20-ending-eight-year-gmt1-saga/
+# Today the Moroccan government adopted Decree No. 2.26.530, which abrogates
+# the 2018 decree that put it at +01 with daylight saving during Ramadan.
+# The plan is to go back to +00 without DST on 2026-09-20 at 02:00.
+# From Anass Taghjichte (2026-07-03):
+# https://www.sgg.gov.ma/BO/AR/3111/2026/BO_7521_Ar.pdf
+# From Afaf EL MAAYATI (2026-07-06):
+# https://www.mapexpress.ma/actualite/activite-gouvernementale/conseil-gouvernement-approuve-projet-decret-relatif-au-retour-lheure-legale/
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
Rule Morocco 1939 only - Sep 12 0:00 1:00 -
@@ -936,143 +937,14 @@ Rule Morocco 2025 only - Feb 23 3:00 -1:00 -
Rule Morocco 2025 only - Apr 6 2:00 0 -
Rule Morocco 2026 only - Feb 15 3:00 -1:00 -
Rule Morocco 2026 only - Mar 22 2:00 0 -
-Rule Morocco 2027 only - Feb 7 3:00 -1:00 -
-Rule Morocco 2027 only - Mar 14 2:00 0 -
-Rule Morocco 2028 only - Jan 23 3:00 -1:00 -
-Rule Morocco 2028 only - Mar 5 2:00 0 -
-Rule Morocco 2029 only - Jan 14 3:00 -1:00 -
-Rule Morocco 2029 only - Feb 18 2:00 0 -
-Rule Morocco 2029 only - Dec 30 3:00 -1:00 -
-Rule Morocco 2030 only - Feb 10 2:00 0 -
-Rule Morocco 2030 only - Dec 22 3:00 -1:00 -
-Rule Morocco 2031 only - Jan 26 2:00 0 -
-Rule Morocco 2031 only - Dec 14 3:00 -1:00 -
-Rule Morocco 2032 only - Jan 18 2:00 0 -
-Rule Morocco 2032 only - Nov 28 3:00 -1:00 -
-Rule Morocco 2033 only - Jan 9 2:00 0 -
-Rule Morocco 2033 only - Nov 20 3:00 -1:00 -
-Rule Morocco 2033 only - Dec 25 2:00 0 -
-Rule Morocco 2034 only - Nov 5 3:00 -1:00 -
-Rule Morocco 2034 only - Dec 17 2:00 0 -
-Rule Morocco 2035 only - Oct 28 3:00 -1:00 -
-Rule Morocco 2035 only - Dec 9 2:00 0 -
-Rule Morocco 2036 only - Oct 19 3:00 -1:00 -
-Rule Morocco 2036 only - Nov 23 2:00 0 -
-Rule Morocco 2037 only - Oct 4 3:00 -1:00 -
-Rule Morocco 2037 only - Nov 15 2:00 0 -
-Rule Morocco 2038 only - Sep 26 3:00 -1:00 -
-Rule Morocco 2038 only - Oct 31 2:00 0 -
-Rule Morocco 2039 only - Sep 18 3:00 -1:00 -
-Rule Morocco 2039 only - Oct 23 2:00 0 -
-Rule Morocco 2040 only - Sep 2 3:00 -1:00 -
-Rule Morocco 2040 only - Oct 14 2:00 0 -
-Rule Morocco 2041 only - Aug 25 3:00 -1:00 -
-Rule Morocco 2041 only - Sep 29 2:00 0 -
-Rule Morocco 2042 only - Aug 10 3:00 -1:00 -
-Rule Morocco 2042 only - Sep 21 2:00 0 -
-Rule Morocco 2043 only - Aug 2 3:00 -1:00 -
-Rule Morocco 2043 only - Sep 13 2:00 0 -
-Rule Morocco 2044 only - Jul 24 3:00 -1:00 -
-Rule Morocco 2044 only - Aug 28 2:00 0 -
-Rule Morocco 2045 only - Jul 9 3:00 -1:00 -
-Rule Morocco 2045 only - Aug 20 2:00 0 -
-Rule Morocco 2046 only - Jul 1 3:00 -1:00 -
-Rule Morocco 2046 only - Aug 5 2:00 0 -
-Rule Morocco 2047 only - Jun 23 3:00 -1:00 -
-Rule Morocco 2047 only - Jul 28 2:00 0 -
-Rule Morocco 2048 only - Jun 7 3:00 -1:00 -
-Rule Morocco 2048 only - Jul 19 2:00 0 -
-Rule Morocco 2049 only - May 30 3:00 -1:00 -
-Rule Morocco 2049 only - Jul 4 2:00 0 -
-Rule Morocco 2050 only - May 15 3:00 -1:00 -
-Rule Morocco 2050 only - Jun 26 2:00 0 -
-Rule Morocco 2051 only - May 7 3:00 -1:00 -
-Rule Morocco 2051 only - Jun 18 2:00 0 -
-Rule Morocco 2052 only - Apr 28 3:00 -1:00 -
-Rule Morocco 2052 only - Jun 2 2:00 0 -
-Rule Morocco 2053 only - Apr 13 3:00 -1:00 -
-Rule Morocco 2053 only - May 25 2:00 0 -
-Rule Morocco 2054 only - Apr 5 3:00 -1:00 -
-Rule Morocco 2054 only - May 10 2:00 0 -
-Rule Morocco 2055 only - Mar 28 3:00 -1:00 -
-Rule Morocco 2055 only - May 2 2:00 0 -
-Rule Morocco 2056 only - Mar 12 3:00 -1:00 -
-Rule Morocco 2056 only - Apr 23 2:00 0 -
-Rule Morocco 2057 only - Mar 4 3:00 -1:00 -
-Rule Morocco 2057 only - Apr 8 2:00 0 -
-Rule Morocco 2058 only - Feb 17 3:00 -1:00 -
-Rule Morocco 2058 only - Mar 31 2:00 0 -
-Rule Morocco 2059 only - Feb 9 3:00 -1:00 -
-Rule Morocco 2059 only - Mar 23 2:00 0 -
-Rule Morocco 2060 only - Feb 1 3:00 -1:00 -
-Rule Morocco 2060 only - Mar 7 2:00 0 -
-Rule Morocco 2061 only - Jan 16 3:00 -1:00 -
-Rule Morocco 2061 only - Feb 27 2:00 0 -
-Rule Morocco 2062 only - Jan 8 3:00 -1:00 -
-Rule Morocco 2062 only - Feb 12 2:00 0 -
-Rule Morocco 2062 only - Dec 31 3:00 -1:00 -
-Rule Morocco 2063 only - Feb 4 2:00 0 -
-Rule Morocco 2063 only - Dec 16 3:00 -1:00 -
-Rule Morocco 2064 only - Jan 27 2:00 0 -
-Rule Morocco 2064 only - Dec 7 3:00 -1:00 -
-Rule Morocco 2065 only - Jan 11 2:00 0 -
-Rule Morocco 2065 only - Nov 22 3:00 -1:00 -
-Rule Morocco 2066 only - Jan 3 2:00 0 -
-Rule Morocco 2066 only - Nov 14 3:00 -1:00 -
-Rule Morocco 2066 only - Dec 26 2:00 0 -
-Rule Morocco 2067 only - Nov 6 3:00 -1:00 -
-Rule Morocco 2067 only - Dec 11 2:00 0 -
-Rule Morocco 2068 only - Oct 21 3:00 -1:00 -
-Rule Morocco 2068 only - Dec 2 2:00 0 -
-Rule Morocco 2069 only - Oct 13 3:00 -1:00 -
-Rule Morocco 2069 only - Nov 17 2:00 0 -
-Rule Morocco 2070 only - Oct 5 3:00 -1:00 -
-Rule Morocco 2070 only - Nov 9 2:00 0 -
-Rule Morocco 2071 only - Sep 20 3:00 -1:00 -
-Rule Morocco 2071 only - Nov 1 2:00 0 -
-Rule Morocco 2072 only - Sep 11 3:00 -1:00 -
-Rule Morocco 2072 only - Oct 16 2:00 0 -
-Rule Morocco 2073 only - Aug 27 3:00 -1:00 -
-Rule Morocco 2073 only - Oct 8 2:00 0 -
-Rule Morocco 2074 only - Aug 19 3:00 -1:00 -
-Rule Morocco 2074 only - Sep 30 2:00 0 -
-Rule Morocco 2075 only - Aug 11 3:00 -1:00 -
-Rule Morocco 2075 only - Sep 15 2:00 0 -
-Rule Morocco 2076 only - Jul 26 3:00 -1:00 -
-Rule Morocco 2076 only - Sep 6 2:00 0 -
-Rule Morocco 2077 only - Jul 18 3:00 -1:00 -
-Rule Morocco 2077 only - Aug 22 2:00 0 -
-Rule Morocco 2078 only - Jul 10 3:00 -1:00 -
-Rule Morocco 2078 only - Aug 14 2:00 0 -
-Rule Morocco 2079 only - Jun 25 3:00 -1:00 -
-Rule Morocco 2079 only - Aug 6 2:00 0 -
-Rule Morocco 2080 only - Jun 16 3:00 -1:00 -
-Rule Morocco 2080 only - Jul 21 2:00 0 -
-Rule Morocco 2081 only - Jun 1 3:00 -1:00 -
-Rule Morocco 2081 only - Jul 13 2:00 0 -
-Rule Morocco 2082 only - May 24 3:00 -1:00 -
-Rule Morocco 2082 only - Jun 28 2:00 0 -
-Rule Morocco 2083 only - May 16 3:00 -1:00 -
-Rule Morocco 2083 only - Jun 20 2:00 0 -
-Rule Morocco 2084 only - Apr 30 3:00 -1:00 -
-Rule Morocco 2084 only - Jun 11 2:00 0 -
-Rule Morocco 2085 only - Apr 22 3:00 -1:00 -
-Rule Morocco 2085 only - May 27 2:00 0 -
-Rule Morocco 2086 only - Apr 14 3:00 -1:00 -
-Rule Morocco 2086 only - May 19 2:00 0 -
-Rule Morocco 2087 only - Mar 30 3:00 -1:00 -
-Rule Morocco 2087 only - May 11 2:00 0 -
-# For dates after the somewhat-arbitrary cutoff of 2087, assume that
-# Morocco will no longer observe DST. At some point this table will
-# need to be extended, though quite possibly Morocco will change the
-# rules first.
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26
0:00 Morocco %z 1984 Mar 16
1:00 - %z 1986
0:00 Morocco %z 2018 Oct 28 3:00
- 1:00 Morocco %z
+ 1:00 Morocco %z 2026 Sep 20 2:00
+ 0:00 - %z
# Western Sahara
#
@@ -1088,7 +960,8 @@ Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26
Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan # El Aaiún
-1:00 - %z 1976 Apr 14
0:00 Morocco %z 2018 Oct 28 3:00
- 1:00 Morocco %z
+ 1:00 Morocco %z 2026 Sep 20 2:00
+ 0:00 - %z
# Botswana
# Burundi
diff --git a/contrib/tzdata/australasia b/contrib/tzdata/australasia
index e52aab109bca..45ac6460391c 100644
--- a/contrib/tzdata/australasia
+++ b/contrib/tzdata/australasia
@@ -1721,7 +1721,7 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
# to Japanese rule was right before 1970, ... per the current tz database
# rule, the information doesn't warrant creation of a new timezone for Bonin
# Islands itself and is thus as an anecdotal note for interest purpose only.
-# ... [The abovementioned link] described some special timekeeping phenomenon
+# ... [The link mentioned above] described some special timekeeping phenomenon
# regarding Marcus island, another remote island currently owned by Japanese
# in the same administrative unit as Bonin Islands. Many reports claim that
# the American coastal guard on the American quarter of the island use its own
diff --git a/contrib/tzdata/europe b/contrib/tzdata/europe
index 4127ec9dcf13..0dc31d9d85e6 100644
--- a/contrib/tzdata/europe
+++ b/contrib/tzdata/europe
@@ -230,7 +230,7 @@
# https://www.polyomino.org.uk/british-time/bbc-19410418.png
# https://www.polyomino.org.uk/british-time/ho-19410421.png
-# From Sir Alexander Maxwell in the above-mentioned letter (1941-04-21):
+# From Sir Alexander Maxwell (1941-04-21) in the letter mentioned above:
# [N]o official designation has as far as I know been adopted for the time
# which is to be introduced in May....
# I cannot think of anything better than "Double British Summer Time"
@@ -2015,7 +2015,7 @@ Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 # Valletta
# From Roman Tudos (2015-07-02):
# http://lex.justice.md/index.php?action=view&view=doc&lang=1&id=355077
# From Paul Eggert (2015-07-01):
-# The abovementioned official link to IGO1445-868/2014 states that
+# The above-mentioned official link to IGO1445-868/2014 states that
# 2014-10-26's fallback transition occurred at 03:00 local time. Also,
# https://www.trm.md/en/social/la-30-martie-vom-trece-la-ora-de-vara
# says the 2014-03-30 spring-forward transition was at 02:00 local time.
@@ -2380,10 +2380,17 @@ Zone Europe/Lisbon -0:36:45 - LMT 1884
# https://oal.ul.pt/hora-legal/legislacao/
# working backward through references of revocation and abrogation to
# Decreto-Lei 47233 of 1966-10-01, the last time DST was abolished across the
-# mainland and its adjacent islands. Because of that reference, it is
-# therefore assumed that DST rules in the islands prior to 1966 were like that
-# of the mainland, though most legislation of the time didn't explicitly
-# specify DST practices for the islands.
+# mainland and its adjacent islands.
+#
+# From Tim Parenti (2026-05-26):
+# Observance of DST on the Azores and Madeira was explicitly covered by
+# mainland legislation in:
+# - Portaria 11767 of 1947-03-28 for 1947,
+# - Portaria 12286 of 1948-02-19 for 1948, and
+# - Decreto-Lei 37048 of 1948-09-07 through its revocation in 1966.
+# (See mainland commentary, above.) However, most legislation prior to 1947
+# didn't explicitly call out these "adjacent islands", so we assume that DST
+# rules on the islands prior to 1947 were also like that of the mainland.
Zone Atlantic/Azores -1:42:40 - LMT 1884 # Ponta Delgada
-1:54:32 - HMT 1912 Jan 1 2:00u # Horta MT
# Vanguard section, for zic and other parsers that support %z.
@@ -2616,7 +2623,7 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct
# http://astro.uni-altai.ru/~orion/blog/2011/11/novyie-granitsyi-chasovyih-poyasov-v-sssr/
#
# From Paul Eggert (2018-07-16):
-# Perhaps someone could translate the above-mentioned link and use it
+# Perhaps someone could translate the link mentioned above, and use it
# to correct our data for the ex-Soviet Union. It cites the following:
# «Поясное время и новые границы часовых поясов» / сост. П.Н. Долгов,
# отв. ред. Г.Д. Бурдун - М: Комитет стандартов, мер и измерительных
diff --git a/contrib/tzdata/leap-seconds.list b/contrib/tzdata/leap-seconds.list
index 0a111845eae4..0b5b000f8edd 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:
#
-#$ 3976686858
+#$ 3992312697
#
# 2) Expiration date of the file given on a semi-annual basis: last June or last December
#
-# File expires on 28 December 2026
+# File expires on 28 June 2027
#
# Expire date in NTP timestamp:
#
-#@ 4007404800
+#@ 4023129600
#
#
# 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 2e101270 4e6749f8 2f1792b7 14a0c188 36bb19d6
+#h a9bad145 84c31c70 758402aa b37bfd54 5923836a
diff --git a/contrib/tzdata/leapseconds b/contrib/tzdata/leapseconds
index a796e4b4e22e..1fc7b8e880b3 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 Dec 28 00:00:00
+#Expires 2027 Jun 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 1767698058 (2026-01-06 11:14:18 UTC)
-#expires 1798416000 (2026-12-28 00:00:00 UTC)
+#updated 1783323897 (2026-07-06 07:44:57 UTC)
+#expires 1814140800 (2027-06-28 00:00:00 UTC)
# Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat)
-# File expires on 28 December 2026
+# File expires on 28 June 2027
diff --git a/contrib/tzdata/northamerica b/contrib/tzdata/northamerica
index 3e8641e1c20a..3c53eb602ec0 100644
--- a/contrib/tzdata/northamerica
+++ b/contrib/tzdata/northamerica
@@ -1742,6 +1742,22 @@ Zone America/Toronto -5:17:32 - LMT 1895
# Manitoba
+# From Paul Eggert (2026-05-08):
+# For 1916 timestamps America/Winnipeg covers only a small region. See:
+# Cassidy C. Winnipeg’s 110-year history with daylight time.
+# Winnipeg Free Press. 2026-05-06.
+# https://www.winnipegfreepress.com/our-communities/correspondents/2026/05/06/winnipegs-110-year-history-with-daylight-time
+# Of the 1916 experiment, Cassidy writes: “As rural areas and nearby
+# urban centres such as Selkirk and Brandon did not adopt DST, the
+# City of Winnipeg essentially had its own time zone.” Cassidy also
+# writes that province-wide DST came into effect on 1963-05-12.
+#
+# Shanks & Pottenger write that Winnipeg did not observe DST in 1964 and 1965.
+# Although dubious in the light of Cassidy’s article, we lack a better source.
+# Perhaps S&P’s data are for the train stations, not for the city?
+# Also, S&P say Manitoba switched at 02:00 (not 02:00s) starting in 1966.
+# Since 02:00s is clearly correct for 1967 on, assume 02:00s in 1966 too.
+
# From Rob Douglas (2006-04-06):
# the old Manitoba Time Act - as amended by Bill 2, assented to
# March 27, 1987 ... said ...
@@ -1756,11 +1772,6 @@ Zone America/Toronto -5:17:32 - LMT 1895
# the 1987 version would apply - the changeover was at 2:00 Central
# Standard Time (i.e. not until 3:00 Central Daylight Time).
-# From Paul Eggert (2006-04-10):
-# Shanks & Pottenger say Manitoba switched at 02:00 (not 02:00s)
-# starting 1966. Since 02:00s is clearly correct for 1967 on, assume
-# it was also 02:00s in 1966.
-
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
Rule Winn 1916 only - Apr 23 0:00 1:00 D
Rule Winn 1916 only - Sep 17 0:00 0 S
@@ -1852,6 +1863,22 @@ Zone America/Winnipeg -6:28:36 - LMT 1887 Jul 16
# long and rather painful to read.
# http://www.qp.gov.sk.ca/documents/English/Statutes/Statutes/T14.pdf
+# From Heitor David Pinto (2026-05-14):
+# In Saskatchewan, a bill was passed to replace the Time Act. It sets UTC-6 all
+# year in the whole province, including Lloydminster, but allows the government
+# to issue regulations specifying a different time in localities that request
+# so:
+# https://docs.legassembly.sk.ca/legdocs/Bills/30L2S/Bill30-58.pdf
+# The bill ... received royal assent today.
+# From Tim Parenti (2026-05-14):
+# In light of Alberta joining Saskatchewan on year-round -06, this simplifies
+# the prior Act's framework for the many local exceptions to year-round -06 in
+# border areas, by extending province-wide the notion of "time option areas"
+# which can be prescribed by regulation "if it is in the provincial interest"
+# for those areas to observe either "UTC-5, UTC-6 or UTC-7 for all or part of
+# the year" on at least 30 days' notice.
+# The new Act comes into force by order of the Lieutenant Governor in Council.
+
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
Rule Regina 1918 only - Apr 14 2:00 1:00 D
Rule Regina 1918 only - Oct 27 2:00 0 S
@@ -1902,6 +1929,45 @@ Zone America/Swift_Current -7:11:20 - LMT 1905 Sep
# Boyer JP. Forcing Choice: The Risky Reward of Referendums. Dundum. 2017.
# ISBN 978-1459739123.
+# From Roozbeh Pournader (2026-04-20):
+# https://calgaryherald.com/opinion/columnists/bell-alberta-daylight-time-year-round-premier-danielle-smith
+#
+# From Tim Parenti (2026-04-23):
+# Section 3 of Bill 31, the Red Tape Reduction Statutes Amendment Act, 2026
+# https://docs.assembly.ab.ca/LADDAR_files/docs/bills/bill/legislature_31/session_2/20251023_bill-031.pdf
+# would repeal the Daylight Saving Time Act in the Revised Statutes of Alberta
+# 2000 Chapter D-5:
+# https://kings-printer.alberta.ca/documents/Acts/D05.pdf
+# ...and substitutes a new chapter with language that closely parallels the
+# original. The new title is the Official Time Act and will be numbered
+# Chapter O-5.7. The Act establishes a standard time of UTC−6 without
+# replacing the language previously used to effectuate DST.
+#
+# From Tim Parenti (2026-06-19):
+# After receiving Royal Assent on 2026-05-14, Order in Council 204/2026 was
+# issued on 2026-06-18 proclaiming the relevant section of the bill in force on
+# the same date. Order in Council 206/2026, issued the same day, uses the
+# regulatory authority within the Act to prescribe the official term "Alberta
+# Time"; we use the traditional abbreviation CST for consistency.
+# https://kings-printer.alberta.ca/Documents/Orders/Orders_in_Council/2026/2026_204.pdf
+# https://kings-printer.alberta.ca/Documents/Orders/Orders_in_Council/2026/2026_206.pdf
+#
+# Since wall clock times do not diverge from past practice until 2026-11-01,
+# use that transition date for now to work around potential CLDR limitations in
+# the meantime; see British Columbia, below.
+#
+# From Paul Eggert (2026-07-02):
+# The temporary hack for Alberta is needed for CLDR 48.2 (2026-03-17)
+# and earlier, not the CLDR 48.1-and-earlier which drives BC’s temporary hack.
+# Only a few platforms track minor CLDR releases, though, so the two
+# temporary hacks have roughly the same effect in practice.
+#
+# The term “Alberta Time” is legally prescribed from yesterday until
+# 2031-06-30, when the regulation in OiC 206/2026 expires to ensure that the
+# term is reviewed by then for relevancy and need. This plan for possible
+# obsolescence affects neither timekeeping nor TZDB’s data, which do
+# not contain the string “Alberta Time”.
+
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D
Rule Edm 1918 only - Oct 27 2:00 0 S
@@ -1919,7 +1985,11 @@ Rule Edm 1972 2006 - Oct lastSun 2:00 0 S
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone America/Edmonton -7:33:52 - LMT 1906 Sep
-7:00 Edm M%sT 1987
- -7:00 Canada M%sT
+ -7:00 Canada M%sT 2026 Jun 18
+ # Temporary hack; see above.
+ -7:00 1:00 MDT 2026 Nov 1 2:00
+ # End of temporary hack.
+ -6:00 - CST
# British Columbia
@@ -1962,7 +2032,7 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep
# 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):
+# From Paul Eggert (2026-07-02):
# 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.
@@ -1971,13 +2041,14 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep
# 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),
+# This pretense works around a limitation in CLDR 48.1 (2026-01-08),
# 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.
+# the temporary hack by November when there would be little point
+# to keeping it anyway.
# 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:
@@ -1988,10 +2059,7 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep
# 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
+# PacT - straightforward but novel abbreviation for Pacific Time
# From Chris Walton (2026-03-15):
# The Regional District of East Kootenay is planning to move to year-round
@@ -2006,6 +2074,10 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep
# 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.
+# From Tim Parenti (2026-05-14):
+# RDEK has historically been aligned with neighboring Alberta. With the latter
+# now opting to stay on -06 year-round, if RDEK does not follow, it would
+# require a new zone for the Cranbrook area.
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
Rule Vanc 1918 only - Apr 14 2:00 1:00 D
@@ -2022,7 +2094,7 @@ Zone America/Vancouver -8:12:28 - LMT 1884
-8:00 Vanc P%sT 1987
-8:00 Canada P%sT 2026 Mar 9
# Temporary hack; see above.
- -8:00 1:00 PDT 2026 Nov 1 02:00
+ -8:00 1:00 PDT 2026 Nov 1 2:00
# End of temporary hack.
-7:00 - MST
Zone America/Dawson_Creek -8:00:56 - LMT 1884
@@ -2350,6 +2422,23 @@ Zone America/Fort_Nelson -8:10:47 - LMT 1884
# about 1970, and uses PST for standard time in Yukon since then. Consistent
# with that, use MST for -07, the new standard time in Yukon effective Nov. 1.
+# From Tim Parenti (2026-04-21):
+# "[Northwest Territories] Premier R.J. Simpson announced Monday that the
+# territory will move to end seasonal time changes and will adopt a year-round
+# time standard instead. ... Simpson has previously said the territory wouldn't
+# end seasonal time changes until Alberta does."
+# https://www.cbc.ca/news/canada/north/nwt-ends-daylight-saving-9.7170964
+#
+# From Tim Parenti (2026-06-19), per James Bellaire (2026-06-02):
+# Much of NWT has, to date, been represented by America/Edmonton, which alias
+# America/Yellowknife links to. While Bill 13 (assented to 2021-03-31) would
+# enable NWT's proposed change mirroring Alberta's, at time of writing it has
+# not yet been formally enacted; if it doesn't move forward as expected,
+# America/Yellowknife would need to become its own zone as Alberta has stopped
+# changing its clocks.
+# If it does go ahead, draft changes to America/Inuvik, which represents the
+# remainder of NWT, are commented below.
+
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
Rule NT_YK 1918 only - Oct 27 2:00 0 S
@@ -2392,6 +2481,10 @@ Zone America/Inuvik 0 - -00 1953 # Inuvik founded
-8:00 NT_YK P%sT 1979 Apr lastSun 2:00
-7:00 NT_YK M%sT 1980
-7:00 Canada M%sT
+# Assuming Northwest Territories follows Alberta in abolishing seasonal time
+# changes, replace the above line with something like:
+# -7:00 Canada M%sT 2026 Nov 1 2:00
+# -6:00 - CST
Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20
-9:00 NT_YK Y%sT 1965
-9:00 Yukon Y%sT 1966 Feb 27 0:00
diff --git a/contrib/tzdata/theory.html b/contrib/tzdata/theory.html
index 12f4f7f4b439..8f76aaf0b3c8 100644
--- a/contrib/tzdata/theory.html
+++ b/contrib/tzdata/theory.html
@@ -592,10 +592,10 @@ in decreasing order of importance:
locations while uninhabited.
The leading "<code>-</code>" is a flag that the <abbr>UT</abbr> offset is in
some sense undefined; this notation is derived
- from <a href="https://www.rfc-editor.org/rfc/rfc3339">Internet
+ from <a href="https://www.rfc-editor.org/info/rfc3339/">Internet
<abbr title="Request For Comments">RFC</abbr> 3339</a>.
(The abbreviation Z that
- <a href="https://www.rfc-editor.org/rfc/rfc9557">Internet
+ <a href="https://www.rfc-editor.org/info/rfc9557/">Internet
<abbr>RFC</abbr> 9557</a> uses for this concept
would violate the POSIX requirement
of at least three characters in an abbreviation.)
@@ -632,7 +632,7 @@ Errors in the <code><abbr>tz</abbr></code> database arise from many sources:
timestamps, and current predictions
will be incorrect after future governments change the rules.
For example, if today someone schedules a meeting for 13:00 next
- October 1, Casablanca time, and tomorrow Morocco changes its
+ October 1, Dublin time, and tomorrow Ireland changes its
daylight saving rules, software can mess up after the rule change
if it blithely relies on conversions made before the change.
</li>
@@ -657,7 +657,7 @@ Errors in the <code><abbr>tz</abbr></code> database arise from many sources:
zones at all, often not even a stable landscape of mean times,
prior to the middle decades of the twentieth century”.
See: Timothy Shenk, <a
-href="https://dissentmagazine.org/blog/booked-a-global-history-of-time-vanessa-ogle/">Booked:
+href="https://dissentmagazine.org/online_articles/booked-a-global-history-of-time-vanessa-ogle/">Booked:
A Global History of Time</a>. <cite>Dissent</cite> 2015-12-17.
</li>
<li>
@@ -938,7 +938,7 @@ with problems that were fixed in later POSIX editions.
has a format that is hard to describe and is error-prone in practice.
Also, proleptic <code>TZ</code> strings cannot deal with daylight
saving time rules not based on the Gregorian calendar (as in
- Morocco), or with situations where more than two time zone
+ Palestine), or with situations where more than two time zone
abbreviations or <abbr>UT</abbr> offsets are used in an area.
</p>
@@ -1128,7 +1128,7 @@ However POSIX.1-2024, like earlier POSIX editions, has some limitations:
the name of a file from which time-related information is read.
The file’s format is <dfn><abbr>TZif</abbr></dfn>,
a timezone information format that contains binary data; see
- <a href="https://www.rfc-editor.org/rfc/rfc9636">Internet
+ <a href="https://www.rfc-editor.org/info/rfc9636/">Internet
<abbr>RFC</abbr> 9636</a>.
The daylight saving time rules to be used for a
particular timezone are encoded in the
@@ -1212,8 +1212,8 @@ The vestigial <abbr>API</abbr>s are:
</li>
<li>
The <code>tm_isdst</code> member is almost never needed and most of
- its uses should be discouraged in favor of the abovementioned
- <abbr>API</abbr>s.
+ its uses should be discouraged in favor of the
+ <abbr>API</abbr>s mentioned above.
It was intended as an index into the <code>tzname</code> variable,
but as mentioned previously that usage is obsolete.
Although it can still be used in arguments to
@@ -1558,7 +1558,7 @@ Sources for time on other planets:
Michael Allison and Robert Schmunk,
“<a href="https://www.giss.nasa.gov/tools/mars24/help/notes.html">Technical
Notes on Mars Solar Time as Adopted by the Mars24 Sunclock</a>”
- (2020-03-08).
+ (2023-05-15).
</li>
<li>
Zara Mirmalek,
diff --git a/contrib/tzdata/version b/contrib/tzdata/version
index 75d34ee38931..9217a2da674e 100644
--- a/contrib/tzdata/version
+++ b/contrib/tzdata/version
@@ -1 +1 @@
-2026b
+2026c
diff --git a/contrib/tzdata/ziguard.awk b/contrib/tzdata/ziguard.awk
index c0acb72a0380..ba3a13405d75 100644
--- a/contrib/tzdata/ziguard.awk
+++ b/contrib/tzdata/ziguard.awk
@@ -184,7 +184,7 @@ DATAFORM != "main" {
dstoff = get_minutes(rules)
} else {
# The DST offset is normally an hour, but there are special cases.
- if (rules == "Morocco" && NF == 3) {
+ if (rules == "Morocco" && $4 == 2026) {
dstoff = -60
} else if (rules == "NBorneo") {
dstoff = 20
@@ -286,13 +286,13 @@ DATAFORM != "main" {
}
}
}
- if ($1 ~ /^[+0-9-]/ && NF == 3) {
+ if ($1 ~ /^[+0-9-]/ && $4 == 2026) {
if (DATAFORM == "rearguard") {
sub(/1:00\tMorocco/, "0:00\tMorocco")
- sub(/\t\+01\/\+00$/, "\t+00/+01")
+ sub(/\t\+01\/\+00/, "\t+00/+01")
} else {
sub(/0:00\tMorocco/, "1:00\tMorocco")
- sub(/\t\+00\/+01$/, "\t+01/+00")
+ sub(/\t\+00\/+01/, "\t+01/+00")
}
}
}
diff --git a/contrib/tzdata/zone.tab b/contrib/tzdata/zone.tab
index 2ae8a8c439eb..69d50bd8ae3b 100644
--- a/contrib/tzdata/zone.tab
+++ b/contrib/tzdata/zone.tab
@@ -121,7 +121,7 @@ CA +744144-0944945 America/Resolute Central - NU (Resolute)
CA +624900-0920459 America/Rankin_Inlet Central - NU (central)
CA +5024-10439 America/Regina CST - SK (most areas)
CA +5017-10750 America/Swift_Current CST - SK (midwest)
-CA +5333-11328 America/Edmonton Mountain - AB, BC(E), NT(E), SK(W)
+CA +5333-11328 America/Edmonton CST - AB, BC(E), NT(E), SK(W)
CA +690650-1050310 America/Cambridge_Bay Mountain - NU (west)
CA +682059-1334300 America/Inuvik Mountain - NT (west)
CA +4916-12307 America/Vancouver MST - BC (most areas)
diff --git a/contrib/tzdata/zone1970.tab b/contrib/tzdata/zone1970.tab
index 48b9aa978d53..b9a8dd5305c3 100644
--- a/contrib/tzdata/zone1970.tab
+++ b/contrib/tzdata/zone1970.tab
@@ -113,7 +113,7 @@ CA +744144-0944945 America/Resolute Central - NU (Resolute)
CA +624900-0920459 America/Rankin_Inlet Central - NU (central)
CA +5024-10439 America/Regina CST - SK (most areas)
*** 33 LINES SKIPPED ***