11/*
2- * Copyright (c) 1998, 2023 , Oracle and/or its affiliates. All rights reserved.
2+ * Copyright (c) 1998, 2025 , Oracle and/or its affiliates. All rights reserved.
33 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44 *
55 * This code is free software; you can redistribute it and/or modify it
3030 * 4174361 4177484 4197699 4209071 4288792 4328747 4413980 4546637 4623997
3131 * 4685354 4655637 4683492 4080631 4080631 4167995 4340146 4639407
3232 * 4652815 4652830 4740554 4936355 4738710 4633646 4846659 4822110 4960642
33- * 4973919 4980088 4965624 5013094 5006864 8152077
33+ * 4973919 4980088 4965624 5013094 5006864 8152077 8347841
3434 * @library /java/text/testlib
3535 * @run junit CalendarRegression
3636 */
4242import java .text .DateFormat ;
4343import java .text .NumberFormat ;
4444import java .text .SimpleDateFormat ;
45+ import java .time .ZoneId ;
46+ import java .util .Arrays ;
4547import java .util .Calendar ;
4648import java .util .Date ;
4749import java .util .GregorianCalendar ;
5052import java .util .Map ;
5153import java .util .SimpleTimeZone ;
5254import java .util .TimeZone ;
55+ import java .util .function .Predicate ;
5356
5457import static java .util .Calendar .*;
5558
@@ -75,7 +78,9 @@ public class CalendarRegression {
7578 public void Test4031502 () {
7679 // This bug actually occurs on Windows NT as well, and doesn't
7780 // require the host zone to be set; it can be set in Java.
78- String [] ids = TimeZone .getAvailableIDs ();
81+ String [] ids = Arrays .stream (TimeZone .getAvailableIDs ())
82+ .filter (Predicate .not (ZoneId .SHORT_IDS ::containsKey ))
83+ .toArray (String []::new );
7984 boolean bad = false ;
8085 for (int i = 0 ; i < ids .length ; ++i ) {
8186 TimeZone zone = TimeZone .getTimeZone (ids [i ]);
@@ -489,7 +494,7 @@ public void Test4095407() {
489494 @ Test
490495 public void Test4096231 () {
491496 TimeZone GMT = TimeZone .getTimeZone ("GMT" );
492- TimeZone PST = TimeZone .getTimeZone ("PST " );
497+ TimeZone PST = TimeZone .getTimeZone ("America/Los_Angeles " );
493498 int sec = 0 , min = 0 , hr = 0 , day = 1 , month = 10 , year = 1997 ;
494499
495500 Calendar cal1 = new GregorianCalendar (PST );
@@ -838,7 +843,7 @@ public void Test4114578() {
838843 TimeZone saveZone = TimeZone .getDefault ();
839844 boolean fail = false ;
840845 try {
841- TimeZone .setDefault (TimeZone .getTimeZone ("PST " ));
846+ TimeZone .setDefault (TimeZone .getTimeZone ("America/Los_Angeles " ));
842847 Calendar cal = Calendar .getInstance ();
843848 long onset = new Date (98 , APRIL , 5 , 1 , 0 ).getTime () + ONE_HOUR ;
844849 long cease = new Date (98 , OCTOBER , 25 , 0 , 0 ).getTime () + 2 * ONE_HOUR ;
@@ -1163,8 +1168,8 @@ public void Test4147269() {
11631168 @ Test
11641169 public void Test4149677 () {
11651170 TimeZone [] zones = {TimeZone .getTimeZone ("GMT" ),
1166- TimeZone .getTimeZone ("PST " ),
1167- TimeZone .getTimeZone ("EAT " )};
1171+ TimeZone .getTimeZone ("America/Los_Angeles " ),
1172+ TimeZone .getTimeZone ("Africa/Addis_Ababa " )};
11681173 for (int i = 0 ; i < zones .length ; ++i ) {
11691174 GregorianCalendar calendar = new GregorianCalendar (zones [i ]);
11701175
@@ -1197,7 +1202,7 @@ public void Test4149677() {
11971202 @ Test
11981203 public void Test4162587 () {
11991204 TimeZone savedTz = TimeZone .getDefault ();
1200- TimeZone tz = TimeZone .getTimeZone ("PST " );
1205+ TimeZone tz = TimeZone .getTimeZone ("America/Los_Angeles " );
12011206 TimeZone .setDefault (tz );
12021207 GregorianCalendar cal = new GregorianCalendar (tz );
12031208 Date d ;
@@ -1511,8 +1516,8 @@ public void Test4174361() {
15111516 */
15121517 @ Test
15131518 public void Test4177484 () {
1514- TimeZone PST = TimeZone .getTimeZone ("PST " );
1515- TimeZone EST = TimeZone .getTimeZone ("EST " );
1519+ TimeZone PST = TimeZone .getTimeZone ("America/Los_Angeles " );
1520+ TimeZone EST = TimeZone .getTimeZone ("America/Panama " );
15161521
15171522 Calendar cal = Calendar .getInstance (PST , Locale .US );
15181523 cal .clear ();
@@ -1770,7 +1775,7 @@ public void Test4413980() {
17701775 TimeZone savedTimeZone = TimeZone .getDefault ();
17711776 try {
17721777 boolean pass = true ;
1773- String [] IDs = new String []{"Undefined" , "PST " , "US/Pacific" ,
1778+ String [] IDs = new String []{"Undefined" , "America/Los_Angeles " , "US/Pacific" ,
17741779 "GMT+3:00" , "GMT-01:30" };
17751780 for (int i = 0 ; i < IDs .length ; i ++) {
17761781 TimeZone tz = TimeZone .getTimeZone (IDs [i ]);
0 commit comments