| // Copyright 2020 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Test the update of tz2020a |
| // https://mm.icann.org/pipermail/tz-announce/2020-April/000058.html |
| // Morocco springs forward on 2020-05-31, not 2020-05-24. |
| // Canada's Yukon advanced to -07 year-round on 2020-03-08. |
| // America/Nuuk renamed from America/Godthab. |
| // zic now supports expiration dates for leap second lists. |
| |
| // A. Test Morocco springs forward on 2020-05-31, not 2020-05-24. |
| |
| const df1 = new Intl.DateTimeFormat( |
| "en", |
| {timeZone: "Africa/Casablanca", timeStyle: "long", dateStyle: "long"}) |
| const d1 = new Date("2020-05-25T00:00:00.000Z"); |
| const d2 = new Date("2020-05-31T00:00:00.000Z"); |
| |
| // Before tz2020a change will get "May 25, 2020 at 1:00:00 AM GMT+1" |
| assertEquals("May 25, 2020 at 12:00:00 AM GMT", df1.format(d1)); |
| |
| // Before tz2020a change will get "May 31, 2020 at 1:00:00 AM GMT+1" |
| assertEquals("May 31, 2020 at 12:00:00 AM GMT", df1.format(d2)); |
| |
| // B. Test Canada's Yukon advanced to -07 year-round on 2020-03-08. |
| const df2 = new Intl.DateTimeFormat( |
| "en", |
| {timeZone: "Canada/Yukon", dateStyle: "long", timeStyle: "long"}); |
| const d3 = new Date("2020-03-09T00:00Z"); |
| const d4 = new Date("2021-03-09T00:00Z"); |
| |
| // Before tz2020a change will get "March 8, 2020 at 5:00:00 PM PDT" |
| // In tz2020a it should be "March 8, 2020 at 5:00:00 PM MST" |
| // but tz2020b roll this back. |
| assertEquals("March 8, 2020 at 5:00:00 PM PDT", df2.format(d3)); |
| |
| // Before tz2020a change will get "March 8, 2021 at 4:00:00 PM PST" |
| assertEquals("March 8, 2021 at 5:00:00 PM MST", df2.format(d4)); |
| |
| // C. Test America/Nuuk renamed from America/Godthab. |
| |
| // Before tz2020a will throw RangeError. |
| const df3 = new Intl.DateTimeFormat("en", {timeZone: "America/Nuuk"}); |
| |
| // Renamed timezone will return the stable name before the rename. |
| assertEquals("America/Godthab", df3.resolvedOptions().timeZone); |