JDK-8339637 : (tz) Update Timezone Data to 2024b
  • Type: Enhancement
  • Component: core-libs
  • Sub-Component: java.time
  • Affected Version: 8,11,17,21
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2024-09-06
  • Updated: 2025-03-19
  • Resolved: 2024-10-16
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 17 JDK 21 JDK 23 JDK 24 JDK 7 JDK 8 Other
11.0.26-oracleFixed 17.0.14-oracleFixed 21.0.6-oracleFixed 23.0.2Fixed 24 b20Fixed 7u451Fixed 8u441Fixed openjdk8u452Fixed
Related Reports
Blocks :  
Blocks :  
Blocks :  
CSR :  
Relates :  
Relates :  
Relates :  
Sub Tasks
JDK-8339720 :  
JDK-8343544 :  
JDK-8343545 :  
Description
The 2024b release of the tz code and data is available.

This release is prompted by the accumulated weight of many non-urgent
changes to both code and data.  It changes one timestamp abbreviation,
for the long-obsolete System V setting TZ='MET'; see below.
Otherwise, the timestamps affected by this release all predate April
2008, so you can skip this release if your application uses only
tzdata and does not use older timestamps.

This release contains the following changes:

   Briefly:
     Improve historical data for Mexico, Mongolia, and Portugal.
     System V names are now obsolescent.
     The main data form now uses %z.
     The code now conforms to RFC 8536 for early timestamps.
     Support POSIX.1-2024, which removes asctime_r and ctime_r.
     Assume POSIX.2-1992 or later for shell scripts.
     SUPPORT_C89 now defaults to 1.

   Changes to past timestamps

     Asia/Choibalsan is now an alias for Asia/Ulaanbaatar rather than
     being a separate Zone with differing behavior before April 2008.
     This seems better given our wildly conflicting information about
     Mongolia's time zone history.  (Thanks to Heitor David Pinto.)

     Historical transitions for Mexico have been updated based on
     official Mexican decrees.  The affected timestamps occur during
     the years 1921-1927, 1931, 1945, 1949-1970, and 1981-1997.
     The affected zones are America/Bahia_Banderas, America/Cancun,
     America/Chihuahua, America/Ciudad_Juarez, America/Hermosillo,
     America/Mazatlan, America/Merida, America/Mexico_City,
     America/Monterrey, America/Ojinaga, and America/Tijuana.
     (Thanks to Heitor David Pinto.)

     Historical transitions for Portugal, represented by Europe/Lisbon,
     Atlantic/Azores, and Atlantic/Madeira, have been updated based on a
     close reading of old Portuguese legislation, replacing previous data
     mainly originating from Whitman and Shanks & Pottenger.  These
     changes affect a few transitions in 1917-1921, 1924, and 1940
     throughout these regions by a few hours or days, and various
     timestamps between 1977 and 1993 depending on the region.  In
     particular, the Azores and Madeira did not observe DST from 1977 to
     1981.  Additionally, the adoption of standard zonal time in former
     Portuguese colonies have been adjusted: Africa/Maputo in 1909, and
     Asia/Dili by 22 minutes at the start of 1912.
     (Thanks to Tim Parenti.)

   Changes to past tm_isdst flags

     The period from 1966-04-03 through 1966-10-02 in Portugal is now
     modeled as DST, to more closely reflect how contemporaneous changes
     in law entered into force.

   Changes to data

     Names present only for compatibility with UNIX System V
     (last released in the 1990s) have been moved to 'backward'.
     These names, which for post-1970 timestamps mostly just duplicate
     data of geographical names, were confusing downstream uses.
     Names moved to 'backward' are now links to geographical names.
     This affects behavior for TZ='EET' for some pre-1981 timestamps,
     for TZ='CET' for some pre-1947 timestamps, and for TZ='WET' for
     some pre-1996 timestamps.  Also, TZ='MET' now behaves like
     TZ='CET' and so uses the abbreviation "CET" rather than "MET".
     Those needing the previous TZDB behavior, which does not match any
     real-world clocks, can find the old entries in 'backzone'.
     (Problem reported by Justin Grant.)

     The main source files' time zone abbreviations now use %z,
     supported by zic since release 2015f and used in vanguard form
     since release 2022b.  For example, America/Sao_Paulo now contains
     the zone continuation line "-3:00 Brazil %z", which is less error
     prone than the old "-3:00 Brazil -03/-02".  This does not change
     the represented data: the generated TZif files are unchanged.
     Rearguard form still avoids %z, to support obsolescent parsers.

     Asia/Almaty has been removed from zonenow.tab as it now agrees
     with Asia/Tashkent for future timestamps, due to Kazakhstan's
     2024-02-29 time zone change.  Similarly, America/Scoresbysund
     has been removed, as it now agrees with America/Nuuk due to
     its 2024-03-31 time zone change.

   Changes to code

     localtime.c now always uses a TZif file's time type 0 to handle
     timestamps before the file's first transition.  Formerly,
     localtime.c sometimes inferred a different time type, in order to
     handle problematic data generated by zic 2018e or earlier.  As it
     is now safe to assume more recent versions of zic, there is no
     longer a pressing need to fail to conform RFC 8536 section 3.2,
     which requires using time type 0 in this situation.  This change
     does not affect behavior when reading TZif files generated by zic
     2018f and later.

     POSIX.1-2024 removes asctime_r and ctime_r and does not let
     libraries define them, so remove them except when needed to
     conform to earlier POSIX.  These functions are dangerous as they
     can overrun user buffers.  If you still need them, add
     -DSUPPORT_POSIX2008 to CFLAGS.

     The SUPPORT_C89 option now defaults to 1 instead of 0, fixing a
     POSIX-conformance bug introduced in 2023a.

     tzselect now supports POSIX.1-2024 proleptic TZ strings.  Also, it
     assumes POSIX.2-1992 or later, as practical porting targets now
     all support that, and it uses some features from POSIX.1-2024 if
     available.

   Changes to build procedure

     'make check' no longer requires curl and Internet access.

     The build procedure now assumes POSIX.2-1992 or later, to simplify
     maintenance.  To build on Solaris 10, the only extant system still
     defaulting to pre-POSIX, prepend /usr/xpg4/bin to PATH.

   Changes to documentation

     The documentation now reflects POSIX.1-2024.

   Changes to commentary

     Commentary about historical transitions in Portugal and her former
     colonies has been expanded with links to many relevant legislation.
     (Thanks to Tim Parenti.)

Here are links to the release files:

   https://www.iana.org/time-zones/repository/releases/tzcode2024b.tar.gz
   https://www.iana.org/time-zones/repository/releases/tzdata2024b.tar.gz
   https://www.iana.org/time-zones/repository/releases/tzdb-2024b.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.gz
   https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz
   https://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 
6903dde39ed637adaafc352c4b6993739253f058 dated 2024-09-04 12:27:47 -0700 
and tagged '2024b' in the development GitHub repository at 
<https://github.com/eggert/tz>.
Comments
[jdk8u-critical-request] Approval Request from Dmitry Cherepanov Backport of 2024b. All relevant tests pass.
06-03-2025

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk8u/pull/69 Date: 2025-03-04 19:50:50 +0000
04-03-2025

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk8u-dev/pull/631 Date: 2025-02-28 21:02:03 +0000
28-02-2025

[jdk11u-fix-request] Approval Request from Radek Čáp clean backport of (tz) Update Timezone Data to 2024b
26-11-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk11u-dev/pull/2971 Date: 2024-11-26 15:45:32 +0000
26-11-2024

Fix request [17u] I backport this for parity with 17.0.14-oracle. One of the required updates of meta information. Clean backport after adapting paths. Tests pass. SAP nighlty testing passed.
22-11-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk17u-dev/pull/3068 Date: 2024-11-21 10:59:22 +0000
21-11-2024

Fix request [21u] I backport this for parity with 21.0.6-oracle. One of the required updates of meta information. I had to resolve and tests needed extensive adaptions. Tests pass. SAP nightly testing passes.
20-11-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk21u-dev/pull/1143 Date: 2024-11-08 12:36:19 +0000
19-11-2024

Fix Request for 23u
17-10-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk23u/pull/191 Date: 2024-10-17 08:48:06 +0000
17-10-2024

Changeset: ebc17c7c Branch: master Author: Johny Jose <johny.jose@oracle.com> Date: 2024-10-16 07:36:07 +0000 URL: https://git.openjdk.org/jdk/commit/ebc17c7c8d6febd5a887309d1b7a466bcd2cc0a9
16-10-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/21265 Date: 2024-09-30 14:03:15 +0000
30-09-2024