Skip to content

8388214: (tz) Update Timezone Data to 2026c - #32240

Open
OumaIntissar wants to merge 1 commit into
openjdk:masterfrom
OumaIntissar:8388214
Open

8388214: (tz) Update Timezone Data to 2026c#32240
OumaIntissar wants to merge 1 commit into
openjdk:masterfrom
OumaIntissar:8388214

Conversation

@OumaIntissar

@OumaIntissar OumaIntissar commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

This updates the JDK time zone data from tzdata2026b to tzdata2026c.

The main tzdata changes included here are:

  • Morocco moves back to permanent UTC on 2026-09-20, removing future projected Ramadan negative-DST rules.
  • Alberta moves to permanent UTC-06, modeled with the traditional CST abbreviation after the temporary CLDR workaround period.
  • British Columbia modeling/commentary is updated from the upstream 2026c data.
  • Leap second metadata is refreshed with the new expiration date.
  • Related TimeZoneData test data is regenerated for tzdata2026c.

The tests were adjusted where previous expectations depended on old tzdata behavior or assumed tzdata abbreviations and localized CLDR names would always match:

  • NegativeDSTTest.java and TestZoneRules.java no longer expect Morocco negative-DST transitions after the 2026 move to permanent UTC.
  • Bug6329116.java allows the known CLDR localized short-name mismatch for Edmonton/Vancouver and their aliases.
  • TestZoneTextPrinterParser.java restricts daylight-name expectations to zones with explicit CLDR DST-offset metadata, avoiding a false Mountain Daylight Time expectation for America/Yellowknife.

All changed tests, plus tier1, tier2, and tier3 validation, passed.



Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issue

  • JDK-8388214: (tz) Update Timezone Data to 2026c (Enhancement - P3)

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/32240/head:pull/32240
$ git checkout pull/32240

Update a local copy of the PR:
$ git checkout pull/32240
$ git pull https://git.openjdk.org/jdk.git pull/32240/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 32240

View PR using the GUI difftool:
$ git pr show -t 32240

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/32240.diff

Using Webrev

Link to Webrev Comment

@bridgekeeper

bridgekeeper Bot commented Aug 6, 2026

Copy link
Copy Markdown

👋 Welcome back OumaIntissar! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk

openjdk Bot commented Aug 6, 2026

Copy link
Copy Markdown

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@openjdk openjdk Bot added core-libs core-libs-dev@openjdk.org i18n i18n-dev@openjdk.org labels Aug 6, 2026
@openjdk

openjdk Bot commented Aug 6, 2026

Copy link
Copy Markdown

@OumaIntissar The following labels will be automatically applied to this pull request:

  • core-libs
  • i18n

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk Bot added the rfr Pull request is ready for review label Aug 6, 2026
@mlbridge

mlbridge Bot commented Aug 6, 2026

Copy link
Copy Markdown

Webrevs

@naotoj naotoj left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks fine to me.

Comment on lines +69 to +74
private static final Map<String, ZoneOffset> EXPLICIT_CLDR_DST_OFFSETS = Map.of(
"Africa/Windhoek", ZoneOffset.of("+02:00"),
"America/Vancouver", ZoneOffset.of("-07:00"),
"Canada/Pacific", ZoneOffset.of("-07:00"),
"Europe/Dublin", ZoneOffset.of("+01:00"),
"Eire", ZoneOffset.of("+01:00"));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since these are golden test data, I think hard-coding the explicit dst information is fine. However, I think it would be helpful to add a comment indicating the corresponding CLDR version for these data.

Nit: I think CLDR_EXPLICIT_DST_OFFSETS would be a better field name.

{WINDHOEK, LocalDate.of(2016, 9, 23), OFF_2, OFF_1, true},

// Africa/Casablanca for the Rule "Morocco" Defines negative DST till 2037 as of 2019a.
// Africa/Casablanca for the Rule "Morocco"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd prefer changing the comment to "Defines negative DST until early 2026, and permanent DST later that year, starting with 2026c". Also I'd leave one test case for the year 2038 (previously the last one).

"Canada/Mountain", "MST",
"America/Yellowknife", "MST",
"America/Vancouver", "PST",
"Canada/Pacific", "PST");

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add a comment mentioning that, as of CLDR v48.2, CLDR provides short names for these zones with explicit DST offsets.

}

// Some zones use CLDR short names even when the tzdata FORMAT changed.
if (locale.equals(Locale.US) && !inDST) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test only verifies names in the US locale, so this locale check isn't needed.

{CASABLANCA, LocalDate.of(2038, 9, 27), 0, false},
{CASABLANCA, LocalDate.of(2038, 11, 1), ONE_HOUR, true},
{CASABLANCA, LocalDate.of(2087, 3, 31), 0, false},
{CASABLANCA, LocalDate.of(2087, 5, 12), ONE_HOUR, true},

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as in TestZoneRules applies here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core-libs core-libs-dev@openjdk.org i18n i18n-dev@openjdk.org rfr Pull request is ready for review

Development

Successfully merging this pull request may close these issues.

2 participants