src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java
changeset 50576 374bd919d8fe
parent 49904 cadca99d52e7
child 51061 9f310b672b8c
--- a/src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java	Fri Jun 15 10:48:56 2018 +0530
+++ b/src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java	Fri Jun 15 11:58:34 2018 +0530
@@ -178,13 +178,27 @@
 
         // last resort
         String id = names[INDEX_TZID].toUpperCase(Locale.ROOT);
-        if (!id.startsWith("ETC/GMT") &&
-                !id.startsWith("GMT") &&
-                !id.startsWith("UT")) {
+        if (!id.startsWith("UT")) {
             names[index] = toGMTFormat(names[INDEX_TZID],
                                        index == INDEX_DST_LONG || index == INDEX_DST_SHORT,
                                        index % 2 != 0,
                                        locale);
+            // aliases of "GMT" timezone.
+            if ((exists(names, INDEX_STD_LONG)) && (id.startsWith("Etc/")
+                    || id.startsWith("GMT") || id.startsWith("Greenwich"))) {
+                switch (id) {
+                case "Etc/GMT":
+                case "Etc/GMT-0":
+                case "Etc/GMT+0":
+                case "Etc/GMT0":
+                case "GMT+0":
+                case "GMT-0":
+                case "GMT0":
+                case "Greenwich":
+                    names[INDEX_DST_LONG] = names[INDEX_GEN_LONG] = names[INDEX_STD_LONG];
+                    break;
+                }
+            }
         }
     }