The 2025a release of the tz code and data is available.
This release contains the following changes:
Briefly:
Paraguay adopts permanent -03 starting spring 2024.
Improve pre-1991 data for the Philippines.
Etc/Unknown is now reserved.
Changes to future timestamps
Paraguay will stop changing its clocks after the spring-forward
transition on 2024-10-06, so it is now permanently at -03.
(Thanks to Heitor David Pinto and Even Scharning.)
This affects timestamps starting 2025-03-22, as well as the
obsolescent tm_isdst flags starting 2024-10-15.
Changes to past timestamps
Correct timestamps for the Philippines before 1900, and from 1937
through 1990. (Thanks to P Chan for the heads-up and citations.)
This includes adjusting local mean time before 1899; fixing
transitions in September 1899, January 1937, and June 1954; adding
transitions in December 1941, November 1945, March and September
1977, and May and July 1990; and removing incorrect transitions in
March and September 1978.
Changes to data
Add zone1970.tab lines for the Concordia and Eyre Bird Observatory
research stations. (Thanks to Derick Rethans and Jule Dabars.)
Changes to code
strftime %s now generates the correct numeric string even when the
represented number does not fit into time_t. This is better than
generating the numeric equivalent of (time_t) -1, as strftime did
in TZDB releases 96a (when %s was introduced) through 2020a and in
releases 2022b through 2024b. It is also better than failing and
returning 0, as strftime did in releases 2020b through 2022a.
strftime now outputs an invalid conversion specifier as-is,
instead of eliding the leading '%', which confused debugging.
An invalid TZ now generates the time zone abbreviation "-00", not
"UTC", to help the user see that an error has occurred. (Thanks
to Arthur David Olson for suggesting a "wrong result".)
mktime and timeoff no longer incorrectly fail merely because a
struct tm component near INT_MIN or INT_MAX overflows when a
lower-order component carries into it.
TZNAME_MAXIMUM, the maximum number of bytes in a proleptic TZ
string's time zone abbreviation, now defaults to 254 not 255.
This helps reduce the size of internal state from 25480 to 21384
on common platforms. This change should not be a problem, as
nobody uses such long "abbreviations" and the longstanding tzcode
maximum was 16 until release 2023a. For those who prefer no
arbitrary limits, you can now specify TZNAME_MAXIMUM values up to
PTRDIFF_MAX, a limit forced by C anyway; formerly tzcode silently
misbehaved unless TZNAME_MAXIMUM was less than INT_MAX.
tzset and related functions no longer leak a file descriptor if
another thread forks or execs at about the same time and if the
platform has O_CLOFORK and O_CLOEXEC respectively. Also, the
functions no longer let a TZif file become a controlling terminal.
'zdump -' now reads TZif data from /dev/stdin.
(From a question by Arthur David Olson.)
Changes to documentation
The name Etc/Unknown is now reserved: it will not be used by TZDB.
This is for compatibility with CLDR, which uses the string
"Etc/Unknown" for an unknown or invalid timezone. (Thanks to
Justin Grant, Mark Davis, and Guy Harris.)
Cite Internet RFC 9636, which obsoletes RFC 8536 for TZif format.
Here are links to the release files:
https://www.iana.org/time-zones/repository/releases/tzcode2025a.tar.gzhttps://www.iana.org/time-zones/repository/releases/tzdata2025a.tar.gzhttps://www.iana.org/time-zones/repository/releases/tzdb-2025a.tar.lz
The following convenience links are also available, although they may
point to the previous release until the relevant caches are refreshed:
https://www.iana.org/time-zones/repository/tzcode-latest.tar.gzhttps://www.iana.org/time-zones/repository/tzdata-latest.tar.gzhttps://www.iana.org/time-zones/repository/tzdb-latest.tar.lz
Links are also available via plain HTTP, and via FTP from
ftp://ftp.iana.org/tz/releases with the same basenames as above.
Each release file has a GPG signature, which can be retrieved by
appending ".asc" to the above URLs. Copies of these signatures are
appended to this message.
This release corresponds to commit
a8e2fcd87bc5f83fec0a76652095e8d7881b0763 dated 2025-01-15 10:47:24 -0800
and tagged '2025a' in the development GitHub repository at
<https://github.com/eggert/tz>.
Here are the SHA-512 checksums for the release files:
308f6a3d6ebfa18446f8296e5c799e18dccecd79ace3ba004d3f233892c7428faae152b217b22d229c59dd4e0faafee797d8b3583b58fa982b81f7cc7347f502
tzcode2025a.tar.gz
93b8f939d39bdfe451e262666f9099c529c96c49d14c08e3611560ca660e12e16d08a22b145d615e00570fb194881618d6f9a0a617c119ab447be03279d747c3
tzdata2025a.tar.gz
1e8c4e141158d63ca5c39babc9d18c32df14e2e59bc7649a7fed8c3e577f7b175bafa43883cf351139ff198515f5f8c22b1418e2ac7efb7f837faa8f61d2574d
tzdb-2025a.tar.lz
Here are GPG digital signatures for the release files:
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmeIA2oACgkQ7ZfpDmKq
fjT4TA//dFIBsmsl3OJ7QdI3lnySSQWyNnZQjsue3qtw7dUp0nbbFd7QGegrVDSC
zrY+v51AVm9sk9hLdLQuyVFm5xRqXuBp2fC70wFeCCocEMp4HnhOogJVXMqQz+Dy
AFZ8U7HmtNUI+ca9MTw6WTpQ5DOy6Of5rer3LbicmzBgVQ/UNcoIFZs4qf+RnMYY
GKOHfLDLhs/4fQf3+zfELLbavieOoqcQlp8HntZrCuR2zZZNImVkt0/ljtTnHqd/
b0KUMDbYQ2dGsNbpBQS5GhAUjVPeUB5npqfA0ibS1gv1e99yWwGeMmUY3GqFbQWn
dNN5LTceS9/H/+thtgN+70g4b2Haz+So91AiXKMNxgvb9qkjqV+2ZFd04ud4hapz
+rRV8y1VDP/QEmXwL4zMnx+xkzGr3xTh+0z67R3RBIbL5eRGQojjKN1BLkYTWRsx
VfaI51+GJWKjlX1Mo9OoSGGWgRWPgn591dYcep+cKA9jYSMzO48VOsdABIt3tTbX
7zqONqpDt6JZJJL7UdH2A0Lik8nkGFnSAnuuwW948CGh26odotoXAC15xWbK18VN
v6T+zGZoLR8PdVlIYPjNUyS0sqo6tZtHa3Nci99+A5XG30oX+ecz/zlyDuRBLWkI
31bmm5423PHZ4N94Yi2V6xAC2G7mHn9m7eYv71C6Pg6fs5vOTgA=
=2Ldn
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmeIA2oACgkQ7ZfpDmKq
fjREhxAAjB1QDroFoq07V+56IIrJR3pK/x4Z2jBbg53N49Cam1oMZK5Wxm291d0G
lPutNQvjiNubnBG4pgMMQ2xEF6jgYY0eFfLlORGK9IoW8e3lnlAqSR9BsOQvWjeA
lKfmBkhFXetSJ8gu2ModVybpVIqDaJJ73sNQSsA01MHwz0RLV5CLOHXitJ8lBO68
vdSArRhalLUEIVytAKyy1a0msFdzrrDj/7q6tMV9NDY1xQg4V9TLxnPNds29H0x8
xO2zrDug6zrbg9z994JYkhq9h9DLe5h4F3StnaDwRK8eLLRq5D7ryK77Z8dtyXZf
tDPgiNc1MquSg48481dDiUfsRdN5S2OLVFqjyWUuwVKBSkSRv/nBQqisGEybY86T
H84D5WA0zlj8mFJyuKFmvGHzzKZ6X7mUNrTObaY3G+QHgHjIKWqO7oog447YOYOG
DSA5rSmYrzZp2RXP/doeFZD+2kbNVPlN8zBh6lANABwvFH6IhDI+/OJzGJqeYotz
ZWVoU3um6aToMS4Uv2PdBNbH1W1P1pzzMM5TJ/bQO/ujCwaBSTwoDPJT6tW9BLrO
gJUWd1AumocieAWc0Vyzbrpzbo7Vc//1LF+s1eI+zWt8925unFrBArvQ4h/PyXsc
O5LhOQVm1986y9xy2YyF+Cy5s+xsKvKENQ0NbLIDa+l5MdEdEXc=
=NQgW
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmeIA2sACgkQ7ZfpDmKq
fjQkcQ/+MWIjE3J5FETCaYxUvElzWIN25Jx4p3dBp4CL/UqD9qW/3CRiRt7KbS5Q
2C1+Hg5DKGAJJ/9/L72t4ttMheskUkGyI/M/xWuG2EKMRPJd3zEPZItSfJOtbBwo
vmmTIe9s/yZTkmeoMQ/PVdhci6rwifwUEopxq3V2pTBIBnj6H+hBlSLL8Y7RgbWQ
yDlzf1HvfnQ+4xlhtcDNb49iljlrPEwUJZe+2RSPmxAtAHe6SJK4i9tSQlv0fJew
whM0//rlihNKRG04TFJ4lw5UeueCKhLL8E/HLbLewVcJcbd4pHMFNmdxi17VHmZj
IG1tj75Ff69dyuZiCkuOe9S5SzKlI40FEU3aN1k7wWz3PzBbGBWt9CMxNY35DpLF
Di23QeTOvdDEEccjivRVyNc4mwthnylOcmKcE5RYhT45W+Tpr0BhLnE29/ZwZ3Dy
EB8wQJvGZWh6LVK2C7unEmQaYmPD+pl8WoZ9MmZHnR0YmNd/NfcefKX/UenLs5+J
HIifuTWnzRfA4DQTbV+l/kNUzOo/asoD98qQ6/2inDEQWCZpg1V1sOFcHVYkb6XX
LT7PUnC5eiKS8U47KBzTTwkEAWij/LKD+gnksjfkzU/Pn5MpzXm4qwVo7v9yuEal
i4nIbqzuY8iK0SYBw0da8W10dFtB3bgtfUuSTXQLCP8sWVI34bY=
=B68m
-----END PGP SIGNATURE-----