1 /* 2 * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 package test.java.time.format; 24 25 import java.util.HashMap; 26 import java.util.Locale; 27 import java.util.Map; 28 29 /** 30 * A helper class to map a zone name to metazone and back to the 31 * appropriate zone id for the particular locale. 32 * <p> 33 * The zid<->metazone mappings are based on CLDR metaZones.xml. 34 * The alias mappings are based on Link entries in tzdb data files and 35 * CLDR's supplementalMetadata.xml. 36 */ 37 class ZoneName { 38 toZid(String zid, Locale locale)39 public static String toZid(String zid, Locale locale) { 40 String mzone = zidToMzone.get(zid); 41 if (mzone == null && aliases.containsKey(zid)) { 42 zid = aliases.get(zid); 43 mzone = zidToMzone.get(zid); 44 } 45 if (mzone != null) { 46 Map<String, String> map = mzoneToZidL.get(mzone); 47 if (map != null && map.containsKey(locale.getCountry())) { 48 zid = map.get(locale.getCountry()); 49 } else { 50 zid = mzoneToZid.get(mzone); 51 } 52 } 53 return toZid(zid); 54 } 55 toZid(String zid)56 public static String toZid(String zid) { 57 if (aliases.containsKey(zid)) { 58 return aliases.get(zid); 59 } 60 return zid; 61 } 62 63 private static final String[] zidMap = new String[] { 64 // From metaZones.xml 65 "Africa/Abidjan", "GMT", "Atlantic/Reykjavik", 66 "Africa/Accra", "GMT", "Atlantic/Reykjavik", 67 "Africa/Addis_Ababa", "Africa_Eastern", "Africa/Nairobi", 68 "Africa/Algiers", "Europe_Central", "Europe/Paris", 69 "Africa/Asmara", "Africa_Eastern", "Africa/Nairobi", 70 "Africa/Asmera", "Africa_Eastern", "Africa/Nairobi", 71 "Africa/Bamako", "GMT", "Atlantic/Reykjavik", 72 "Africa/Bangui", "Africa_Western", "Africa/Lagos", 73 "Africa/Banjul", "GMT", "Atlantic/Reykjavik", 74 "Africa/Bissau", "GMT", "Atlantic/Reykjavik", 75 "Africa/Blantyre", "Africa_Central", "Africa/Maputo", 76 "Africa/Brazzaville", "Africa_Western", "Africa/Lagos", 77 "Africa/Bujumbura", "Africa_Central", "Africa/Maputo", 78 "Africa/Cairo", "Europe_Eastern", "Europe/Bucharest", 79 "Africa/Casablanca", "Europe_Western", "Atlantic/Canary", 80 "Africa/Ceuta", "Europe_Central", "Europe/Paris", 81 "Africa/Conakry", "GMT", "Atlantic/Reykjavik", 82 "Africa/Dakar", "GMT", "Atlantic/Reykjavik", 83 "Africa/Dar_es_Salaam", "Africa_Eastern", "Africa/Nairobi", 84 "Africa/Djibouti", "Africa_Eastern", "Africa/Nairobi", 85 "Africa/Douala", "Africa_Western", "Africa/Lagos", 86 "Africa/El_Aaiun", "Europe_Western", "Atlantic/Canary", 87 "Africa/Freetown", "GMT", "Atlantic/Reykjavik", 88 "Africa/Gaborone", "Africa_Central", "Africa/Maputo", 89 "Africa/Harare", "Africa_Central", "Africa/Maputo", 90 "Africa/Johannesburg", "Africa_Southern", "Africa/Johannesburg", 91 "Africa/Juba", "Africa_Eastern", "Africa/Nairobi", 92 "Africa/Kampala", "Africa_Eastern", "Africa/Nairobi", 93 "Africa/Khartoum", "Africa_Eastern", "Africa/Nairobi", 94 "Africa/Kigali", "Africa_Central", "Africa/Maputo", 95 "Africa/Kinshasa", "Africa_Western", "Africa/Lagos", 96 "Africa/Lagos", "Africa_Western", "Africa/Lagos", 97 "Africa/Libreville", "Africa_Western", "Africa/Lagos", 98 "Africa/Lome", "GMT", "Atlantic/Reykjavik", 99 "Africa/Luanda", "Africa_Western", "Africa/Lagos", 100 "Africa/Lubumbashi", "Africa_Central", "Africa/Maputo", 101 "Africa/Lusaka", "Africa_Central", "Africa/Maputo", 102 "Africa/Malabo", "Africa_Western", "Africa/Lagos", 103 "Africa/Maputo", "Africa_Central", "Africa/Maputo", 104 "Africa/Maseru", "Africa_Southern", "Africa/Johannesburg", 105 "Africa/Mbabane", "Africa_Southern", "Africa/Johannesburg", 106 "Africa/Mogadishu", "Africa_Eastern", "Africa/Nairobi", 107 "Africa/Monrovia", "GMT", "Atlantic/Reykjavik", 108 "Africa/Nairobi", "Africa_Eastern", "Africa/Nairobi", 109 "Africa/Ndjamena", "Africa_Western", "Africa/Lagos", 110 "Africa/Niamey", "Africa_Western", "Africa/Lagos", 111 "Africa/Nouakchott", "GMT", "Atlantic/Reykjavik", 112 "Africa/Ouagadougou", "GMT", "Atlantic/Reykjavik", 113 "Africa/Porto-Novo", "Africa_Western", "Africa/Lagos", 114 "Africa/Sao_Tome", "GMT", "Atlantic/Reykjavik", 115 "Africa/Timbuktu", "GMT", "Atlantic/Reykjavik", 116 "Africa/Tripoli", "Europe_Eastern", "Europe/Bucharest", 117 "Africa/Tunis", "Europe_Central", "Europe/Paris", 118 "Africa/Windhoek", "Africa_Western", "Africa/Lagos", 119 "America/Adak", "Hawaii_Aleutian", "Pacific/Honolulu", 120 "America/Anchorage", "Alaska", "America/Juneau", 121 "America/Anguilla", "Atlantic", "America/Halifax", 122 "America/Antigua", "Atlantic", "America/Halifax", 123 "America/Araguaina", "Brasilia", "America/Sao_Paulo", 124 "America/Argentina/Buenos_Aires", "Argentina", "America/Buenos_Aires", 125 "America/Argentina/Catamarca", "Argentina", "America/Buenos_Aires", 126 "America/Argentina/ComodRivadavia", "Argentina", "America/Buenos_Aires", 127 "America/Argentina/Cordoba", "Argentina", "America/Buenos_Aires", 128 "America/Argentina/Jujuy", "Argentina", "America/Buenos_Aires", 129 "America/Argentina/La_Rioja", "Argentina", "America/Buenos_Aires", 130 "America/Argentina/Mendoza", "Argentina", "America/Buenos_Aires", 131 "America/Argentina/Rio_Gallegos", "Argentina", "America/Buenos_Aires", 132 "America/Argentina/Salta", "Argentina", "America/Buenos_Aires", 133 "America/Argentina/San_Juan", "Argentina", "America/Buenos_Aires", 134 "America/Argentina/San_Luis", "Argentina_Western", "America/Argentina/San_Luis", 135 "America/Argentina/Tucuman", "Argentina", "America/Buenos_Aires", 136 "America/Argentina/Ushuaia", "Argentina", "America/Buenos_Aires", 137 "America/Aruba", "Atlantic", "America/Halifax", 138 "America/Asuncion", "Paraguay", "America/Asuncion", 139 "America/Atikokan", "America_Eastern", "America/New_York", 140 "America/Atka", "Hawaii_Aleutian", "Pacific/Honolulu", 141 "America/Bahia", "Brasilia", "America/Sao_Paulo", 142 "America/Bahia_Banderas", "America_Central", "America/Chicago", 143 "America/Barbados", "Atlantic", "America/Halifax", 144 "America/Belem", "Brasilia", "America/Sao_Paulo", 145 "America/Belize", "America_Central", "America/Chicago", 146 "America/Blanc-Sablon", "Atlantic", "America/Halifax", 147 "America/Boa_Vista", "Amazon", "America/Manaus", 148 "America/Bogota", "Colombia", "America/Bogota", 149 "America/Boise", "America_Mountain", "America/Denver", 150 "America/Buenos_Aires", "Argentina", "America/Buenos_Aires", 151 "America/Cambridge_Bay", "America_Mountain", "America/Denver", 152 "America/Campo_Grande", "Amazon", "America/Manaus", 153 "America/Cancun", "America_Eastern", "America/New_York", 154 "America/Caracas", "Venezuela", "America/Caracas", 155 "America/Catamarca", "Argentina", "America/Buenos_Aires", 156 "America/Cayenne", "French_Guiana", "America/Cayenne", 157 "America/Cayman", "America_Eastern", "America/New_York", 158 "America/Chicago", "America_Central", "America/Chicago", 159 "America/Chihuahua", "Mexico_Pacific", "America/Mazatlan", 160 "America/Coral_Harbour", "America_Eastern", "America/New_York", 161 "America/Cordoba", "Argentina", "America/Buenos_Aires", 162 "America/Costa_Rica", "America_Central", "America/Chicago", 163 "America/Creston", "America_Mountain", "America/Denver", 164 "America/Cuiaba", "Amazon", "America/Manaus", 165 "America/Curacao", "Atlantic", "America/Halifax", 166 "America/Danmarkshavn", "GMT", "Atlantic/Reykjavik", 167 "America/Dawson", "America_Pacific", "America/Los_Angeles", 168 "America/Dawson_Creek", "America_Mountain", "America/Denver", 169 "America/Denver", "America_Mountain", "America/Denver", 170 "America/Detroit", "America_Eastern", "America/New_York", 171 "America/Dominica", "Atlantic", "America/Halifax", 172 "America/Edmonton", "America_Mountain", "America/Denver", 173 "America/Eirunepe", "Acre", "America/Rio_Branco", 174 "America/El_Salvador", "America_Central", "America/Chicago", 175 "America/Ensenada", "America_Pacific", "America/Los_Angeles", 176 "America/Fort_Nelson", "America_Mountain", "America/Denver", 177 "America/Fort_Wayne", "America_Eastern", "America/New_York", 178 "America/Fortaleza", "Brasilia", "America/Sao_Paulo", 179 "America/Glace_Bay", "Atlantic", "America/Halifax", 180 "America/Godthab", "Greenland_Western", "America/Godthab", 181 "America/Goose_Bay", "Atlantic", "America/Halifax", 182 "America/Grand_Turk", "Atlantic", "America/Halifax", 183 "America/Grenada", "Atlantic", "America/Halifax", 184 "America/Guadeloupe", "Atlantic", "America/Halifax", 185 "America/Guatemala", "America_Central", "America/Chicago", 186 "America/Guayaquil", "Ecuador", "America/Guayaquil", 187 "America/Guyana", "Guyana", "America/Guyana", 188 "America/Halifax", "Atlantic", "America/Halifax", 189 "America/Havana", "Cuba", "America/Havana", 190 "America/Hermosillo", "Mexico_Pacific", "America/Mazatlan", 191 "America/Indiana/Indianapolis", "America_Eastern", "America/New_York", 192 "America/Indiana/Knox", "America_Central", "America/Chicago", 193 "America/Indiana/Marengo", "America_Eastern", "America/New_York", 194 "America/Indiana/Petersburg", "America_Eastern", "America/New_York", 195 "America/Indiana/Tell_City", "America_Central", "America/Chicago", 196 "America/Indiana/Vevay", "America_Eastern", "America/New_York", 197 "America/Indiana/Vincennes", "America_Eastern", "America/New_York", 198 "America/Indiana/Winamac", "America_Eastern", "America/New_York", 199 "America/Indianapolis", "America_Eastern", "America/New_York", 200 "America/Inuvik", "America_Mountain", "America/Denver", 201 "America/Iqaluit", "America_Eastern", "America/New_York", 202 "America/Jamaica", "America_Eastern", "America/New_York", 203 "America/Jujuy", "Argentina", "America/Buenos_Aires", 204 "America/Juneau", "Alaska", "America/Juneau", 205 "America/Kentucky/Louisville", "America_Eastern", "America/New_York", 206 "America/Kentucky/Monticello", "America_Eastern", "America/New_York", 207 "America/Knox_IN", "America_Central", "America/Chicago", 208 "America/Kralendijk", "Atlantic", "America/Halifax", 209 "America/La_Paz", "Bolivia", "America/La_Paz", 210 "America/Lima", "Peru", "America/Lima", 211 "America/Los_Angeles", "America_Pacific", "America/Los_Angeles", 212 "America/Louisville", "America_Eastern", "America/New_York", 213 "America/Lower_Princes", "Atlantic", "America/Halifax", 214 "America/Maceio", "Brasilia", "America/Sao_Paulo", 215 "America/Managua", "America_Central", "America/Chicago", 216 "America/Manaus", "Amazon", "America/Manaus", 217 "America/Marigot", "Atlantic", "America/Halifax", 218 "America/Martinique", "Atlantic", "America/Halifax", 219 "America/Matamoros", "America_Central", "America/Chicago", 220 "America/Mazatlan", "Mexico_Pacific", "America/Mazatlan", 221 "America/Mendoza", "Argentina", "America/Buenos_Aires", 222 "America/Menominee", "America_Central", "America/Chicago", 223 "America/Merida", "America_Central", "America/Chicago", 224 "America/Metlakatla", "Alaska", "America/Juneau", 225 "America/Mexico_City", "America_Central", "America/Chicago", 226 "America/Miquelon", "Pierre_Miquelon", "America/Miquelon", 227 "America/Moncton", "Atlantic", "America/Halifax", 228 "America/Monterrey", "America_Central", "America/Chicago", 229 "America/Montevideo", "Uruguay", "America/Montevideo", 230 "America/Montserrat", "Atlantic", "America/Halifax", 231 "America/Nassau", "America_Eastern", "America/New_York", 232 "America/New_York", "America_Eastern", "America/New_York", 233 "America/Nipigon", "America_Eastern", "America/New_York", 234 "America/Nome", "Alaska", "America/Juneau", 235 "America/Noronha", "Noronha", "America/Noronha", 236 "America/North_Dakota/Beulah", "America_Central", "America/Chicago", 237 "America/North_Dakota/Center", "America_Central", "America/Chicago", 238 "America/North_Dakota/New_Salem", "America_Central", "America/Chicago", 239 "America/Ojinaga", "America_Mountain", "America/Denver", 240 "America/Panama", "America_Eastern", "America/New_York", 241 "America/Pangnirtung", "America_Eastern", "America/New_York", 242 "America/Paramaribo", "Suriname", "America/Paramaribo", 243 "America/Phoenix", "America_Mountain", "America/Denver", 244 "America/Port-au-Prince", "America_Eastern", "America/New_York", 245 "America/Port_of_Spain", "Atlantic", "America/Halifax", 246 "America/Porto_Acre", "Acre", "America/Rio_Branco", 247 "America/Porto_Velho", "Amazon", "America/Manaus", 248 "America/Puerto_Rico", "Atlantic", "America/Halifax", 249 "America/Rainy_River", "America_Central", "America/Chicago", 250 "America/Rankin_Inlet", "America_Central", "America/Chicago", 251 "America/Recife", "Brasilia", "America/Sao_Paulo", 252 "America/Regina", "America_Central", "America/Chicago", 253 "America/Resolute", "America_Central", "America/Chicago", 254 "America/Rio_Branco", "Acre", "America/Rio_Branco", 255 "America/Rosario", "Argentina", "America/Buenos_Aires", 256 "America/Santa_Isabel", "Mexico_Northwest", "America/Santa_Isabel", 257 "America/Santarem", "Brasilia", "America/Sao_Paulo", 258 "America/Santiago", "Chile", "America/Santiago", 259 "America/Santo_Domingo", "Atlantic", "America/Halifax", 260 "America/Sao_Paulo", "Brasilia", "America/Sao_Paulo", 261 "America/Scoresbysund", "Greenland_Eastern", "America/Scoresbysund", 262 "America/Shiprock", "America_Mountain", "America/Denver", 263 "America/Sitka", "Alaska", "America/Juneau", 264 "America/St_Barthelemy", "Atlantic", "America/Halifax", 265 "America/St_Johns", "Newfoundland", "America/St_Johns", 266 "America/St_Kitts", "Atlantic", "America/Halifax", 267 "America/St_Lucia", "Atlantic", "America/Halifax", 268 "America/St_Thomas", "Atlantic", "America/Halifax", 269 "America/St_Vincent", "Atlantic", "America/Halifax", 270 "America/Swift_Current", "America_Central", "America/Chicago", 271 "America/Tegucigalpa", "America_Central", "America/Chicago", 272 "America/Thule", "Atlantic", "America/Halifax", 273 "America/Thunder_Bay", "America_Eastern", "America/New_York", 274 "America/Tijuana", "America_Pacific", "America/Los_Angeles", 275 "America/Toronto", "America_Eastern", "America/New_York", 276 "America/Tortola", "Atlantic", "America/Halifax", 277 "America/Vancouver", "America_Pacific", "America/Los_Angeles", 278 "America/Virgin", "Atlantic", "America/Halifax", 279 "America/Whitehorse", "America_Pacific", "America/Los_Angeles", 280 "America/Winnipeg", "America_Central", "America/Chicago", 281 "America/Yakutat", "Alaska", "America/Juneau", 282 "America/Yellowknife", "America_Mountain", "America/Denver", 283 "Antarctica/Casey", "Australia_Western", "Australia/Perth", 284 "Antarctica/Davis", "Davis", "Antarctica/Davis", 285 "Antarctica/DumontDUrville", "DumontDUrville", "Antarctica/DumontDUrville", 286 "Antarctica/Macquarie", "Macquarie", "Antarctica/Macquarie", 287 "Antarctica/Mawson", "Mawson", "Antarctica/Mawson", 288 "Antarctica/McMurdo", "New_Zealand", "Pacific/Auckland", 289 "Antarctica/Palmer", "Chile", "America/Santiago", 290 "Antarctica/Rothera", "Rothera", "Antarctica/Rothera", 291 "Antarctica/South_Pole", "New_Zealand", "Pacific/Auckland", 292 "Antarctica/Syowa", "Syowa", "Antarctica/Syowa", 293 "Antarctica/Troll", "GMT", "Atlantic/Reykjavik", 294 "Antarctica/Vostok", "Vostok", "Antarctica/Vostok", 295 "Arctic/Longyearbyen", "Europe_Central", "Europe/Paris", 296 "Asia/Aden", "Arabian", "Asia/Riyadh", 297 "Asia/Almaty", "Kazakhstan_Eastern", "Asia/Almaty", 298 "Asia/Amman", "Europe_Eastern", "Europe/Bucharest", 299 "Asia/Anadyr", "Magadan", "Asia/Magadan", 300 "Asia/Aqtau", "Kazakhstan_Western", "Asia/Aqtobe", 301 "Asia/Aqtobe", "Kazakhstan_Western", "Asia/Aqtobe", 302 "Asia/Ashgabat", "Turkmenistan", "Asia/Ashgabat", 303 "Asia/Ashkhabad", "Turkmenistan", "Asia/Ashgabat", 304 "Asia/Baghdad", "Arabian", "Asia/Riyadh", 305 "Asia/Bahrain", "Arabian", "Asia/Riyadh", 306 "Asia/Baku", "Azerbaijan", "Asia/Baku", 307 "Asia/Bangkok", "Indochina", "Asia/Bangkok", 308 "Asia/Beirut", "Europe_Eastern", "Europe/Bucharest", 309 "Asia/Bishkek", "Kyrgystan", "Asia/Bishkek", 310 "Asia/Brunei", "Brunei", "Asia/Brunei", 311 "Asia/Calcutta", "India", "Asia/Calcutta", 312 "Asia/Chita", "Yakutsk", "Asia/Yakutsk", 313 "Asia/Choibalsan", "Choibalsan", "Asia/Choibalsan", 314 "Asia/Chongqing", "China", "Asia/Shanghai", 315 "Asia/Chungking", "China", "Asia/Shanghai", 316 "Asia/Colombo", "India", "Asia/Calcutta", 317 "Asia/Dacca", "Bangladesh", "Asia/Dhaka", 318 "Asia/Damascus", "Europe_Eastern", "Europe/Bucharest", 319 "Asia/Dhaka", "Bangladesh", "Asia/Dhaka", 320 "Asia/Dili", "East_Timor", "Asia/Dili", 321 "Asia/Dubai", "Gulf", "Asia/Dubai", 322 "Asia/Dushanbe", "Tajikistan", "Asia/Dushanbe", 323 "Asia/Gaza", "Europe_Eastern", "Europe/Bucharest", 324 "Asia/Harbin", "China", "Asia/Shanghai", 325 "Asia/Hebron", "Europe_Eastern", "Europe/Bucharest", 326 "Asia/Ho_Chi_Minh", "Indochina", "Asia/Bangkok", 327 "Asia/Hong_Kong", "Hong_Kong", "Asia/Hong_Kong", 328 "Asia/Hovd", "Hovd", "Asia/Hovd", 329 "Asia/Irkutsk", "Irkutsk", "Asia/Irkutsk", 330 "Asia/Istanbul", "Europe_Eastern", "Europe/Bucharest", 331 "Asia/Jakarta", "Indonesia_Western", "Asia/Jakarta", 332 "Asia/Jayapura", "Indonesia_Eastern", "Asia/Jayapura", 333 "Asia/Jerusalem", "Israel", "Asia/Jerusalem", 334 "Asia/Kabul", "Afghanistan", "Asia/Kabul", 335 "Asia/Kamchatka", "Kamchatka", "Asia/Kamchatka", 336 "Asia/Karachi", "Pakistan", "Asia/Karachi", 337 "Asia/Kashgar", "Urumqi", "Asia/Urumqi", 338 "Asia/Kathmandu", "Nepal", "Asia/Katmandu", 339 "Asia/Katmandu", "Nepal", "Asia/Katmandu", 340 "Asia/Khandyga", "Yakutsk", "Asia/Yakutsk", 341 "Asia/Kolkata", "India", "Asia/Calcutta", 342 "Asia/Krasnoyarsk", "Krasnoyarsk", "Asia/Krasnoyarsk", 343 "Asia/Kuala_Lumpur", "Malaysia", "Asia/Kuching", 344 "Asia/Kuching", "Malaysia", "Asia/Kuching", 345 "Asia/Kuwait", "Arabian", "Asia/Riyadh", 346 "Asia/Macao", "China", "Asia/Shanghai", 347 "Asia/Macau", "China", "Asia/Shanghai", 348 "Asia/Magadan", "Magadan", "Asia/Magadan", 349 "Asia/Makassar", "Indonesia_Central", "Asia/Makassar", 350 "Asia/Manila", "Philippines", "Asia/Manila", 351 "Asia/Muscat", "Gulf", "Asia/Dubai", 352 "Asia/Nicosia", "Europe_Eastern", "Europe/Bucharest", 353 "Asia/Novokuznetsk", "Krasnoyarsk", "Asia/Krasnoyarsk", 354 "Asia/Novosibirsk", "Novosibirsk", "Asia/Novosibirsk", 355 "Asia/Omsk", "Omsk", "Asia/Omsk", 356 "Asia/Oral", "Kazakhstan_Western", "Asia/Aqtobe", 357 "Asia/Phnom_Penh", "Indochina", "Asia/Bangkok", 358 "Asia/Pontianak", "Indonesia_Western", "Asia/Jakarta", 359 "Asia/Pyongyang", "Pyongyang", "Asia/Pyongyang", 360 "Asia/Qatar", "Arabian", "Asia/Riyadh", 361 "Asia/Qyzylorda", "Kazakhstan_Eastern", "Asia/Almaty", 362 "Asia/Rangoon", "Myanmar", "Asia/Rangoon", 363 "Asia/Riyadh", "Arabian", "Asia/Riyadh", 364 "Asia/Saigon", "Indochina", "Asia/Bangkok", 365 "Asia/Sakhalin", "Sakhalin", "Asia/Sakhalin", 366 "Asia/Samarkand", "Uzbekistan", "Asia/Tashkent", 367 "Asia/Seoul", "Korea", "Asia/Seoul", 368 "Asia/Shanghai", "China", "Asia/Shanghai", 369 "Asia/Singapore", "Singapore", "Asia/Singapore", 370 "Asia/Srednekolymsk", "Singapore", "Asia/Singapore", 371 "Asia/Taipei", "Taipei", "Asia/Taipei", 372 "Asia/Tashkent", "Uzbekistan", "Asia/Tashkent", 373 "Asia/Tbilisi", "Georgia", "Asia/Tbilisi", 374 "Asia/Tehran", "Iran", "Asia/Tehran", 375 "Asia/Tel_Aviv", "Israel", "Asia/Jerusalem", 376 "Asia/Thimbu", "Bhutan", "Asia/Thimphu", 377 "Asia/Thimphu", "Bhutan", "Asia/Thimphu", 378 "Asia/Tokyo", "Japan", "Asia/Tokyo", 379 "Asia/Ujung_Pandang", "Indonesia_Central", "Asia/Makassar", 380 "Asia/Ulaanbaatar", "Mongolia", "Asia/Ulaanbaatar", 381 "Asia/Ulan_Bator", "Mongolia", "Asia/Ulaanbaatar", 382 "Asia/Urumqi", "Urumqi", "Asia/Urumqi", 383 "Asia/Ust-Nera", "Vladivostok", "Asia/Vladivostok", 384 "Asia/Vientiane", "Indochina", "Asia/Bangkok", 385 "Asia/Vladivostok", "Vladivostok", "Asia/Vladivostok", 386 "Asia/Yakutsk", "Yakutsk", "Asia/Yakutsk", 387 "Asia/Yekaterinburg", "Yekaterinburg", "Asia/Yekaterinburg", 388 "Asia/Yerevan", "Armenia", "Asia/Yerevan", 389 "Atlantic/Azores", "Azores", "Atlantic/Azores", 390 "Atlantic/Bermuda", "Atlantic", "America/Halifax", 391 "Atlantic/Canary", "Europe_Western", "Atlantic/Canary", 392 "Atlantic/Cape_Verde", "Cape_Verde", "Atlantic/Cape_Verde", 393 "Atlantic/Faeroe", "Europe_Western", "Atlantic/Canary", 394 "Atlantic/Faroe", "Europe_Western", "Atlantic/Canary", 395 "Atlantic/Jan_Mayen", "Europe_Central", "Europe/Paris", 396 "Atlantic/Madeira", "Europe_Western", "Atlantic/Canary", 397 "Atlantic/Reykjavik", "GMT", "Atlantic/Reykjavik", 398 "Atlantic/South_Georgia", "South_Georgia", "Atlantic/South_Georgia", 399 "Atlantic/St_Helena", "GMT", "Atlantic/Reykjavik", 400 "Atlantic/Stanley", "Falkland", "Atlantic/Stanley", 401 "Australia/ACT", "Australia_Eastern", "Australia/Sydney", 402 "Australia/Adelaide", "Australia_Central", "Australia/Adelaide", 403 "Australia/Brisbane", "Australia_Eastern", "Australia/Sydney", 404 "Australia/Broken_Hill", "Australia_Central", "Australia/Adelaide", 405 "Australia/Canberra", "Australia_Eastern", "Australia/Sydney", 406 "Australia/Currie", "Australia_Eastern", "Australia/Sydney", 407 "Australia/Darwin", "Australia_Central", "Australia/Adelaide", 408 "Australia/Eucla", "Australia_CentralWestern", "Australia/Eucla", 409 "Australia/Hobart", "Australia_Eastern", "Australia/Sydney", 410 "Australia/LHI", "Lord_Howe", "Australia/Lord_Howe", 411 "Australia/Lindeman", "Australia_Eastern", "Australia/Sydney", 412 "Australia/Lord_Howe", "Lord_Howe", "Australia/Lord_Howe", 413 "Australia/Melbourne", "Australia_Eastern", "Australia/Sydney", 414 "Australia/NSW", "Australia_Eastern", "Australia/Sydney", 415 "Australia/North", "Australia_Central", "Australia/Adelaide", 416 "Australia/Perth", "Australia_Western", "Australia/Perth", 417 "Australia/Queensland", "Australia_Eastern", "Australia/Sydney", 418 "Australia/South", "Australia_Central", "Australia/Adelaide", 419 "Australia/Sydney", "Australia_Eastern", "Australia/Sydney", 420 "Australia/Tasmania", "Australia_Eastern", "Australia/Sydney", 421 "Australia/Victoria", "Australia_Eastern", "Australia/Sydney", 422 "Australia/West", "Australia_Western", "Australia/Perth", 423 "Australia/Yancowinna", "Australia_Central", "Australia/Adelaide", 424 "Brazil/Acre", "Acre", "America/Rio_Branco", 425 "Brazil/DeNoronha", "Noronha", "America/Noronha", 426 "Brazil/East", "Brasilia", "America/Sao_Paulo", 427 "Brazil/West", "Amazon", "America/Manaus", 428 "CST6CDT", "America_Central", "America/Chicago", 429 "Canada/Atlantic", "Atlantic", "America/Halifax", 430 "Canada/Central", "America_Central", "America/Chicago", 431 "Canada/East-Saskatchewan", "America_Central", "America/Chicago", 432 "Canada/Eastern", "America_Eastern", "America/New_York", 433 "Canada/Mountain", "America_Mountain", "America/Denver", 434 "Canada/Newfoundland", "Newfoundland", "America/St_Johns", 435 "Canada/Pacific", "America_Pacific", "America/Los_Angeles", 436 "Canada/Saskatchewan", "America_Central", "America/Chicago", 437 "Canada/Yukon", "America_Pacific", "America/Los_Angeles", 438 "Chile/Continental", "Chile", "America/Santiago", 439 "Chile/EasterIsland", "Easter", "Pacific/Easter", 440 "Cuba", "Cuba", "America/Havana", 441 "EST5EDT", "America_Eastern", "America/New_York", 442 "Egypt", "Europe_Eastern", "Europe/Bucharest", 443 "Eire", "GMT", "Atlantic/Reykjavik", 444 "Europe/Amsterdam", "Europe_Central", "Europe/Paris", 445 "Europe/Andorra", "Europe_Central", "Europe/Paris", 446 "Europe/Athens", "Europe_Eastern", "Europe/Bucharest", 447 "Europe/Belfast", "GMT", "Atlantic/Reykjavik", 448 "Europe/Belgrade", "Europe_Central", "Europe/Paris", 449 "Europe/Berlin", "Europe_Central", "Europe/Paris", 450 "Europe/Bratislava", "Europe_Central", "Europe/Paris", 451 "Europe/Brussels", "Europe_Central", "Europe/Paris", 452 "Europe/Bucharest", "Europe_Eastern", "Europe/Bucharest", 453 "Europe/Budapest", "Europe_Central", "Europe/Paris", 454 "Europe/Busingen", "Europe_Central", "Europe/Paris", 455 "Europe/Chisinau", "Europe_Eastern", "Europe/Bucharest", 456 "Europe/Copenhagen", "Europe_Central", "Europe/Paris", 457 "Europe/Dublin", "GMT", "Atlantic/Reykjavik", 458 "Europe/Gibraltar", "Europe_Central", "Europe/Paris", 459 "Europe/Guernsey", "GMT", "Atlantic/Reykjavik", 460 "Europe/Helsinki", "Europe_Eastern", "Europe/Bucharest", 461 "Europe/Isle_of_Man", "GMT", "Atlantic/Reykjavik", 462 "Europe/Istanbul", "Europe_Eastern", "Europe/Bucharest", 463 "Europe/Jersey", "GMT", "Atlantic/Reykjavik", 464 "Europe/Kaliningrad", "Europe_Eastern", "Europe/Bucharest", 465 "Europe/Kiev", "Europe_Eastern", "Europe/Bucharest", 466 "Europe/Lisbon", "Europe_Western", "Atlantic/Canary", 467 "Europe/Ljubljana", "Europe_Central", "Europe/Paris", 468 "Europe/London", "GMT", "Atlantic/Reykjavik", 469 "Europe/Luxembourg", "Europe_Central", "Europe/Paris", 470 "Europe/Madrid", "Europe_Central", "Europe/Paris", 471 "Europe/Malta", "Europe_Central", "Europe/Paris", 472 "Europe/Mariehamn", "Europe_Eastern", "Europe/Bucharest", 473 "Europe/Minsk", "Europe_Further_Eastern", "Europe/Minsk", 474 "Europe/Monaco", "Europe_Central", "Europe/Paris", 475 "Europe/Moscow", "Moscow", "Europe/Moscow", 476 "Europe/Nicosia", "Europe_Eastern", "Europe/Bucharest", 477 "Europe/Oslo", "Europe_Central", "Europe/Paris", 478 "Europe/Paris", "Europe_Central", "Europe/Paris", 479 "Europe/Podgorica", "Europe_Central", "Europe/Paris", 480 "Europe/Prague", "Europe_Central", "Europe/Paris", 481 "Europe/Riga", "Europe_Eastern", "Europe/Bucharest", 482 "Europe/Rome", "Europe_Central", "Europe/Paris", 483 "Europe/Samara", "Samara", "Europe/Samara", 484 "Europe/San_Marino", "Europe_Central", "Europe/Paris", 485 "Europe/Sarajevo", "Europe_Central", "Europe/Paris", 486 "Europe/Simferopol", "Moscow", "Europe/Moscow", 487 "Europe/Skopje", "Europe_Central", "Europe/Paris", 488 "Europe/Sofia", "Europe_Eastern", "Europe/Bucharest", 489 "Europe/Stockholm", "Europe_Central", "Europe/Paris", 490 "Europe/Tallinn", "Europe_Eastern", "Europe/Bucharest", 491 "Europe/Tirane", "Europe_Central", "Europe/Paris", 492 "Europe/Tiraspol", "Europe_Eastern", "Europe/Bucharest", 493 "Europe/Uzhgorod", "Europe_Eastern", "Europe/Bucharest", 494 "Europe/Vaduz", "Europe_Central", "Europe/Paris", 495 "Europe/Vatican", "Europe_Central", "Europe/Paris", 496 "Europe/Vienna", "Europe_Central", "Europe/Paris", 497 "Europe/Vilnius", "Europe_Eastern", "Europe/Bucharest", 498 "Europe/Volgograd", "Moscow", "Europe/Moscow", 499 "Europe/Warsaw", "Europe_Central", "Europe/Paris", 500 "Europe/Zagreb", "Europe_Central", "Europe/Paris", 501 "Europe/Zaporozhye", "Europe_Eastern", "Europe/Bucharest", 502 "Europe/Zurich", "Europe_Central", "Europe/Paris", 503 "GB", "GMT", "Atlantic/Reykjavik", 504 "GB-Eire", "GMT", "Atlantic/Reykjavik", 505 "Hongkong", "Hong_Kong", "Asia/Hong_Kong", 506 "Iceland", "GMT", "Atlantic/Reykjavik", 507 "Indian/Antananarivo", "Africa_Eastern", "Africa/Nairobi", 508 "Indian/Chagos", "Indian_Ocean", "Indian/Chagos", 509 "Indian/Christmas", "Christmas", "Indian/Christmas", 510 "Indian/Cocos", "Cocos", "Indian/Cocos", 511 "Indian/Comoro", "Africa_Eastern", "Africa/Nairobi", 512 "Indian/Kerguelen", "French_Southern", "Indian/Kerguelen", 513 "Indian/Mahe", "Seychelles", "Indian/Mahe", 514 "Indian/Maldives", "Maldives", "Indian/Maldives", 515 "Indian/Mauritius", "Mauritius", "Indian/Mauritius", 516 "Indian/Mayotte", "Africa_Eastern", "Africa/Nairobi", 517 "Indian/Reunion", "Reunion", "Indian/Reunion", 518 "Iran", "Iran", "Asia/Tehran", 519 "Israel", "Israel", "Asia/Jerusalem", 520 "Jamaica", "America_Eastern", "America/New_York", 521 "Japan", "Japan", "Asia/Tokyo", 522 "Kwajalein", "Marshall_Islands", "Pacific/Majuro", 523 "Libya", "Europe_Eastern", "Europe/Bucharest", 524 "MST7MDT", "America_Mountain", "America/Denver", 525 "Mexico/BajaNorte", "America_Pacific", "America/Los_Angeles", 526 "Mexico/BajaSur", "Mexico_Pacific", "America/Mazatlan", 527 "Mexico/General", "America_Central", "America/Chicago", 528 "NZ", "New_Zealand", "Pacific/Auckland", 529 "NZ-CHAT", "Chatham", "Pacific/Chatham", 530 "Navajo", "America_Mountain", "America/Denver", 531 "PRC", "China", "Asia/Shanghai", 532 "PST8PDT", "America_Pacific", "America/Los_Angeles", 533 "Pacific/Apia", "Apia", "Pacific/Apia", 534 "Pacific/Auckland", "New_Zealand", "Pacific/Auckland", 535 "Pacific/Bougainville", "New_Zealand", "Pacific/Auckland", 536 "Pacific/Chatham", "Chatham", "Pacific/Chatham", 537 "Pacific/Chuuk", "Truk", "Pacific/Truk", 538 "Pacific/Easter", "Easter", "Pacific/Easter", 539 "Pacific/Efate", "Vanuatu", "Pacific/Efate", 540 "Pacific/Enderbury", "Phoenix_Islands", "Pacific/Enderbury", 541 "Pacific/Fakaofo", "Tokelau", "Pacific/Fakaofo", 542 "Pacific/Fiji", "Fiji", "Pacific/Fiji", 543 "Pacific/Funafuti", "Tuvalu", "Pacific/Funafuti", 544 "Pacific/Galapagos", "Galapagos", "Pacific/Galapagos", 545 "Pacific/Gambier", "Gambier", "Pacific/Gambier", 546 "Pacific/Guadalcanal", "Solomon", "Pacific/Guadalcanal", 547 "Pacific/Guam", "Chamorro", "Pacific/Saipan", 548 "Pacific/Honolulu", "Hawaii_Aleutian", "Pacific/Honolulu", 549 "Pacific/Johnston", "Hawaii_Aleutian", "Pacific/Honolulu", 550 "Pacific/Kiritimati", "Line_Islands", "Pacific/Kiritimati", 551 "Pacific/Kosrae", "Kosrae", "Pacific/Kosrae", 552 "Pacific/Kwajalein", "Marshall_Islands", "Pacific/Majuro", 553 "Pacific/Majuro", "Marshall_Islands", "Pacific/Majuro", 554 "Pacific/Marquesas", "Marquesas", "Pacific/Marquesas", 555 "Pacific/Midway", "Samoa", "Pacific/Pago_Pago", 556 "Pacific/Nauru", "Nauru", "Pacific/Nauru", 557 "Pacific/Niue", "Niue", "Pacific/Niue", 558 "Pacific/Norfolk", "Norfolk", "Pacific/Norfolk", 559 "Pacific/Noumea", "New_Caledonia", "Pacific/Noumea", 560 "Pacific/Pago_Pago", "Samoa", "Pacific/Pago_Pago", 561 "Pacific/Palau", "Palau", "Pacific/Palau", 562 "Pacific/Pitcairn", "Pitcairn", "Pacific/Pitcairn", 563 "Pacific/Pohnpei", "Ponape", "Pacific/Ponape", 564 "Pacific/Ponape", "Ponape", "Pacific/Ponape", 565 "Pacific/Port_Moresby", "Papua_New_Guinea", "Pacific/Port_Moresby", 566 "Pacific/Rarotonga", "Cook", "Pacific/Rarotonga", 567 "Pacific/Saipan", "Chamorro", "Pacific/Saipan", 568 "Pacific/Samoa", "Samoa", "Pacific/Pago_Pago", 569 "Pacific/Tahiti", "Tahiti", "Pacific/Tahiti", 570 "Pacific/Tarawa", "Gilbert_Islands", "Pacific/Tarawa", 571 "Pacific/Tongatapu", "Tonga", "Pacific/Tongatapu", 572 "Pacific/Truk", "Truk", "Pacific/Truk", 573 "Pacific/Wake", "Wake", "Pacific/Wake", 574 "Pacific/Wallis", "Wallis", "Pacific/Wallis", 575 "Pacific/Yap", "Truk", "Pacific/Truk", 576 "Poland", "Europe_Central", "Europe/Paris", 577 "Portugal", "Europe_Western", "Atlantic/Canary", 578 "ROK", "Korea", "Asia/Seoul", 579 "Singapore", "Singapore", "Asia/Singapore", 580 "Turkey", "Europe_Eastern", "Europe/Bucharest", 581 "US/Alaska", "Alaska", "America/Juneau", 582 "US/Aleutian", "Hawaii_Aleutian", "Pacific/Honolulu", 583 "US/Arizona", "America_Mountain", "America/Denver", 584 "US/Central", "America_Central", "America/Chicago", 585 "US/East-Indiana", "America_Eastern", "America/New_York", 586 "US/Eastern", "America_Eastern", "America/New_York", 587 "US/Hawaii", "Hawaii_Aleutian", "Pacific/Honolulu", 588 "US/Indiana-Starke", "America_Central", "America/Chicago", 589 "US/Michigan", "America_Eastern", "America/New_York", 590 "US/Mountain", "America_Mountain", "America/Denver", 591 "US/Pacific", "America_Pacific", "America/Los_Angeles", 592 "US/Samoa", "Samoa", "Pacific/Pago_Pago", 593 "W-SU", "Moscow", "Europe/Moscow", 594 595 // From tzdb 596 "Africa/Khartoum", "Africa_Central", "Africa/Maputo", // tzdata2017c 597 "Africa/Windhoek", "Africa_Central", "Africa/Maputo", // tzdata2017c 598 "Africa/Sao_Tome", "Africa_Western", "Africa/Lagos", // tzdata2018c 599 }; 600 private static final String[] mzoneMap = new String[] { 601 // From metaZones.xml 602 "Africa_Central", "BI", "Africa/Bujumbura", 603 "Africa_Central", "BW", "Africa/Gaborone", 604 "Africa_Central", "CD", "Africa/Lubumbashi", 605 "Africa_Central", "MW", "Africa/Blantyre", 606 "Africa_Central", "RW", "Africa/Kigali", 607 "Africa_Central", "ZM", "Africa/Lusaka", 608 "Africa_Central", "ZW", "Africa/Harare", 609 "Africa_Eastern", "DJ", "Africa/Djibouti", 610 "Africa_Eastern", "ER", "Africa/Asmera", 611 "Africa_Eastern", "ET", "Africa/Addis_Ababa", 612 "Africa_Eastern", "KM", "Indian/Comoro", 613 "Africa_Eastern", "MG", "Indian/Antananarivo", 614 "Africa_Eastern", "SO", "Africa/Mogadishu", 615 "Africa_Eastern", "TZ", "Africa/Dar_es_Salaam", 616 "Africa_Eastern", "UG", "Africa/Kampala", 617 "Africa_Eastern", "YT", "Indian/Mayotte", 618 "Africa_Southern", "LS", "Africa/Maseru", 619 "Africa_Southern", "SZ", "Africa/Mbabane", 620 "Africa_Western", "AO", "Africa/Luanda", 621 "Africa_Western", "BJ", "Africa/Porto-Novo", 622 "Africa_Western", "CD", "Africa/Kinshasa", 623 "Africa_Western", "CF", "Africa/Bangui", 624 "Africa_Western", "CG", "Africa/Brazzaville", 625 "Africa_Western", "CM", "Africa/Douala", 626 "Africa_Western", "GA", "Africa/Libreville", 627 "Africa_Western", "GQ", "Africa/Malabo", 628 "Africa_Western", "NE", "Africa/Niamey", 629 "Africa_Western", "TD", "Africa/Ndjamena", 630 "America_Central", "BZ", "America/Belize", 631 "America_Central", "CA", "America/Winnipeg", 632 "America_Central", "CR", "America/Costa_Rica", 633 "America_Central", "GT", "America/Guatemala", 634 "America_Central", "HN", "America/Tegucigalpa", 635 "America_Central", "MX", "America/Mexico_City", 636 "America_Central", "SV", "America/El_Salvador", 637 "America_Eastern", "BS", "America/Nassau", 638 "America_Eastern", "CA", "America/Toronto", 639 "America_Eastern", "HT", "America/Port-au-Prince", 640 "America_Eastern", "JM", "America/Jamaica", 641 "America_Eastern", "KY", "America/Cayman", 642 "America_Eastern", "PA", "America/Panama", 643 "America_Mountain", "CA", "America/Edmonton", 644 "America_Mountain", "MX", "America/Hermosillo", 645 "America_Pacific", "CA", "America/Vancouver", 646 "America_Pacific", "MX", "America/Tijuana", 647 "Arabian", "BH", "Asia/Bahrain", 648 "Arabian", "IQ", "Asia/Baghdad", 649 "Arabian", "KW", "Asia/Kuwait", 650 "Arabian", "QA", "Asia/Qatar", 651 "Arabian", "YE", "Asia/Aden", 652 "Atlantic", "AG", "America/Antigua", 653 "Atlantic", "AI", "America/Anguilla", 654 "Atlantic", "AN", "America/Curacao", 655 "Atlantic", "AW", "America/Aruba", 656 "Atlantic", "BB", "America/Barbados", 657 "Atlantic", "BM", "Atlantic/Bermuda", 658 "Atlantic", "BQ", "America/Kralendijk", 659 "Atlantic", "DM", "America/Dominica", 660 "Atlantic", "GD", "America/Grenada", 661 "Atlantic", "GL", "America/Thule", 662 "Atlantic", "GP", "America/Guadeloupe", 663 "Atlantic", "KN", "America/St_Kitts", 664 "Atlantic", "LC", "America/St_Lucia", 665 "Atlantic", "MF", "America/Marigot", 666 "Atlantic", "MQ", "America/Martinique", 667 "Atlantic", "MS", "America/Montserrat", 668 "Atlantic", "PR", "America/Puerto_Rico", 669 "Atlantic", "SX", "America/Lower_Princes", 670 "Atlantic", "TT", "America/Port_of_Spain", 671 "Atlantic", "VC", "America/St_Vincent", 672 "Atlantic", "VG", "America/Tortola", 673 "Atlantic", "VI", "America/St_Thomas", 674 "Chamorro", "GU", "Pacific/Guam", 675 "Chile", "AQ", "Antarctica/Palmer", 676 "Europe_Central", "AD", "Europe/Andorra", 677 "Europe_Central", "AL", "Europe/Tirane", 678 "Europe_Central", "AT", "Europe/Vienna", 679 "Europe_Central", "BA", "Europe/Sarajevo", 680 "Europe_Central", "BE", "Europe/Brussels", 681 "Europe_Central", "CH", "Europe/Zurich", 682 "Europe_Central", "CZ", "Europe/Prague", 683 "Europe_Central", "DE", "Europe/Berlin", 684 "Europe_Central", "DK", "Europe/Copenhagen", 685 "Europe_Central", "ES", "Europe/Madrid", 686 "Europe_Central", "GI", "Europe/Gibraltar", 687 "Europe_Central", "HR", "Europe/Zagreb", 688 "Europe_Central", "HU", "Europe/Budapest", 689 "Europe_Central", "IT", "Europe/Rome", 690 "Europe_Central", "LI", "Europe/Vaduz", 691 "Europe_Central", "LU", "Europe/Luxembourg", 692 "Europe_Central", "MC", "Europe/Monaco", 693 "Europe_Central", "ME", "Europe/Podgorica", 694 "Europe_Central", "MK", "Europe/Skopje", 695 "Europe_Central", "MT", "Europe/Malta", 696 "Europe_Central", "NL", "Europe/Amsterdam", 697 "Europe_Central", "NO", "Europe/Oslo", 698 "Europe_Central", "PL", "Europe/Warsaw", 699 "Europe_Central", "RS", "Europe/Belgrade", 700 "Europe_Central", "SE", "Europe/Stockholm", 701 "Europe_Central", "SI", "Europe/Ljubljana", 702 "Europe_Central", "SK", "Europe/Bratislava", 703 "Europe_Central", "SM", "Europe/San_Marino", 704 "Europe_Central", "TN", "Africa/Tunis", 705 "Europe_Central", "VA", "Europe/Vatican", 706 "Europe_Central", "XK", "Europe/Belgrade", 707 "Europe_Eastern", "AX", "Europe/Mariehamn", 708 "Europe_Eastern", "BG", "Europe/Sofia", 709 "Europe_Eastern", "CY", "Asia/Nicosia", 710 "Europe_Eastern", "EG", "Africa/Cairo", 711 "Europe_Eastern", "FI", "Europe/Helsinki", 712 "Europe_Eastern", "GR", "Europe/Athens", 713 "Europe_Eastern", "JO", "Asia/Amman", 714 "Europe_Eastern", "LB", "Asia/Beirut", 715 "Europe_Eastern", "SY", "Asia/Damascus", 716 "Europe_Further_Eastern", "RU", "Europe/Kaliningrad", 717 "Europe_Western", "FO", "Atlantic/Faeroe", 718 "GMT", "BF", "Africa/Ouagadougou", 719 "GMT", "CI", "Africa/Abidjan", 720 "GMT", "GB", "Europe/London", 721 "GMT", "GH", "Africa/Accra", 722 "GMT", "GM", "Africa/Banjul", 723 "GMT", "GN", "Africa/Conakry", 724 "GMT", "IE", "Europe/Dublin", 725 "GMT", "ML", "Africa/Bamako", 726 "GMT", "MR", "Africa/Nouakchott", 727 "GMT", "SH", "Atlantic/St_Helena", 728 "GMT", "SL", "Africa/Freetown", 729 "GMT", "SN", "Africa/Dakar", 730 "GMT", "ST", "Africa/Sao_Tome", 731 "GMT", "TG", "Africa/Lome", 732 "Gulf", "OM", "Asia/Muscat", 733 "India", "LK", "Asia/Colombo", 734 "Indochina", "KH", "Asia/Phnom_Penh", 735 "Indochina", "LA", "Asia/Vientiane", 736 "Korea", "KP", "Asia/Pyongyang", 737 "New_Zealand", "AQ", "Antarctica/McMurdo", 738 739 // From tzdb 740 "Africa_Western", "ST", "Africa/Sao_Tome", // tzdata2018c 741 }; 742 private static final String[] aliasMap = new String[] { 743 // From supplementalMetadata.xml 744 "Africa/Timbuktu", "Africa/Bamako", 745 "America/Montreal", "America/Toronto", 746 "America/Shiprock", "America/Denver", 747 "Antarctica/South_Pole", "Pacific/Auckland", 748 "Asia/Chongqing", "Asia/Shanghai", 749 "Asia/Harbin", "Asia/Shanghai", 750 "Asia/Kashgar", "Asia/Urumqi", 751 "Atlantic/Jan_Mayen", "Europe/Oslo", 752 "EST", "America/Indianapolis", 753 "Europe/Belfast", "Europe/London", 754 "HST", "Pacific/Honolulu", 755 "MST", "America/Phoenix", 756 "Pacific/Yap", "Pacific/Truk", 757 "SystemV/AST4", "America/Puerto_Rico", 758 "SystemV/AST4ADT", "America/Halifax", 759 "SystemV/CST6", "America/Regina", 760 "SystemV/CST6CDT", "America/Chicago", 761 "SystemV/EST5", "America/Indianapolis", 762 "SystemV/EST5EDT", "America/New_York", 763 "SystemV/HST10", "Pacific/Honolulu", 764 "SystemV/MST7", "America/Phoenix", 765 "SystemV/MST7MDT", "America/Denver", 766 "SystemV/PST8", "Pacific/Pitcairn", 767 "SystemV/PST8PDT", "America/Los_Angeles", 768 "SystemV/YST9", "Pacific/Gambier", 769 "SystemV/YST9YDT", "America/Anchorage", 770 771 // From tzdb 772 "Africa/Addis_Ababa", "Africa/Nairobi", 773 "Africa/Asmara", "Africa/Nairobi", 774 "Africa/Asmera", "Africa/Nairobi", 775 "Africa/Bamako", "Africa/Abidjan", 776 "Africa/Bangui", "Africa/Lagos", 777 "Africa/Banjul", "Africa/Abidjan", 778 "Africa/Blantyre", "Africa/Maputo", 779 "Africa/Brazzaville", "Africa/Lagos", 780 "Africa/Bujumbura", "Africa/Maputo", 781 "Africa/Conakry", "Africa/Abidjan", 782 "Africa/Dakar", "Africa/Abidjan", 783 "Africa/Dar_es_Salaam", "Africa/Nairobi", 784 "Africa/Djibouti", "Africa/Nairobi", 785 "Africa/Douala", "Africa/Lagos", 786 "Africa/Freetown", "Africa/Abidjan", 787 "Africa/Gaborone", "Africa/Maputo", 788 "Africa/Harare", "Africa/Maputo", 789 "Africa/Kampala", "Africa/Nairobi", 790 "Africa/Kigali", "Africa/Maputo", 791 "Africa/Kinshasa", "Africa/Lagos", 792 "Africa/Libreville", "Africa/Lagos", 793 "Africa/Lome", "Africa/Abidjan", 794 "Africa/Luanda", "Africa/Lagos", 795 "Africa/Lubumbashi", "Africa/Maputo", 796 "Africa/Lusaka", "Africa/Maputo", 797 "Africa/Malabo", "Africa/Lagos", 798 "Africa/Maseru", "Africa/Johannesburg", 799 "Africa/Mbabane", "Africa/Johannesburg", 800 "Africa/Mogadishu", "Africa/Nairobi", 801 "Africa/Niamey", "Africa/Lagos", 802 "Africa/Nouakchott", "Africa/Abidjan", 803 "Africa/Ouagadougou", "Africa/Abidjan", 804 "Africa/Porto-Novo", "Africa/Lagos", 805 "Africa/Timbuktu", "Africa/Abidjan", 806 "America/Anguilla", "America/Port_of_Spain", 807 "America/Antigua", "America/Port_of_Spain", 808 "America/Argentina/ComodRivadavia", "America/Argentina/Catamarca", 809 "America/Aruba", "America/Curacao", 810 "America/Atka", "America/Adak", 811 "America/Buenos_Aires", "America/Argentina/Buenos_Aires", 812 "America/Catamarca", "America/Argentina/Catamarca", 813 "America/Cayman", "America/Panama", 814 "America/Coral_Harbour", "America/Atikokan", 815 "America/Cordoba", "America/Argentina/Cordoba", 816 "America/Dominica", "America/Port_of_Spain", 817 "America/Ensenada", "America/Tijuana", 818 "America/Fort_Wayne", "America/Indiana/Indianapolis", 819 "America/Godthab", "America/Nuuk", 820 "America/Grenada", "America/Port_of_Spain", 821 "America/Guadeloupe", "America/Port_of_Spain", 822 "America/Indianapolis", "America/Indiana/Indianapolis", 823 "America/Jujuy", "America/Argentina/Jujuy", 824 "America/Knox_IN", "America/Indiana/Knox", 825 "America/Kralendijk", "America/Curacao", 826 "America/Louisville", "America/Kentucky/Louisville", 827 "America/Lower_Princes", "America/Curacao", 828 "America/Marigot", "America/Port_of_Spain", 829 "America/Mendoza", "America/Argentina/Mendoza", 830 "America/Montreal", "America/Toronto", 831 "America/Montserrat", "America/Port_of_Spain", 832 "America/Porto_Acre", "America/Rio_Branco", 833 "America/Rosario", "America/Argentina/Cordoba", 834 "America/Santa_Isabel", "America/Tijuana", 835 "America/Shiprock", "America/Denver", 836 "America/St_Barthelemy", "America/Port_of_Spain", 837 "America/St_Kitts", "America/Port_of_Spain", 838 "America/St_Lucia", "America/Port_of_Spain", 839 "America/St_Thomas", "America/Port_of_Spain", 840 "America/St_Vincent", "America/Port_of_Spain", 841 "America/Tortola", "America/Port_of_Spain", 842 "America/Virgin", "America/Port_of_Spain", 843 "Antarctica/McMurdo", "Pacific/Auckland", 844 "Antarctica/South_Pole", "Pacific/Auckland", 845 "Arctic/Longyearbyen", "Europe/Oslo", 846 "Asia/Aden", "Asia/Riyadh", 847 "Asia/Ashkhabad", "Asia/Ashgabat", 848 "Asia/Bahrain", "Asia/Qatar", 849 "Asia/Calcutta", "Asia/Kolkata", 850 "Asia/Chongqing", "Asia/Shanghai", 851 "Asia/Chungking", "Asia/Shanghai", 852 "Asia/Dacca", "Asia/Dhaka", 853 "Asia/Harbin", "Asia/Shanghai", 854 "Asia/Istanbul", "Europe/Istanbul", 855 "Asia/Kashgar", "Asia/Urumqi", 856 "Asia/Katmandu", "Asia/Kathmandu", 857 "Asia/Kuwait", "Asia/Riyadh", 858 "Asia/Macao", "Asia/Macau", 859 "Asia/Muscat", "Asia/Dubai", 860 "Asia/Phnom_Penh", "Asia/Bangkok", 861 "Asia/Rangoon", "Asia/Yangon", 862 "Asia/Saigon", "Asia/Ho_Chi_Minh", 863 "Asia/Tel_Aviv", "Asia/Jerusalem", 864 "Asia/Thimbu", "Asia/Thimphu", 865 "Asia/Ujung_Pandang", "Asia/Makassar", 866 "Asia/Ulan_Bator", "Asia/Ulaanbaatar", 867 "Asia/Vientiane", "Asia/Bangkok", 868 "Atlantic/Faeroe", "Atlantic/Faroe", 869 "Atlantic/Jan_Mayen", "Europe/Oslo", 870 "Atlantic/St_Helena", "Africa/Abidjan", 871 "Australia/ACT", "Australia/Sydney", 872 "Australia/Canberra", "Australia/Sydney", 873 "Australia/LHI", "Australia/Lord_Howe", 874 "Australia/NSW", "Australia/Sydney", 875 "Australia/North", "Australia/Darwin", 876 "Australia/Queensland", "Australia/Brisbane", 877 "Australia/South", "Australia/Adelaide", 878 "Australia/Tasmania", "Australia/Hobart", 879 "Australia/Victoria", "Australia/Melbourne", 880 "Australia/West", "Australia/Perth", 881 "Australia/Yancowinna", "Australia/Broken_Hill", 882 "Brazil/Acre", "America/Rio_Branco", 883 "Brazil/DeNoronha", "America/Noronha", 884 "Brazil/East", "America/Sao_Paulo", 885 "Brazil/West", "America/Manaus", 886 "Canada/Atlantic", "America/Halifax", 887 "Canada/Central", "America/Winnipeg", 888 "Canada/Eastern", "America/Toronto", 889 "Canada/Mountain", "America/Edmonton", 890 "Canada/Newfoundland", "America/St_Johns", 891 "Canada/Pacific", "America/Vancouver", 892 "Canada/Saskatchewan", "America/Regina", 893 "Canada/Yukon", "America/Whitehorse", 894 "Chile/Continental", "America/Santiago", 895 "Chile/EasterIsland", "Pacific/Easter", 896 "Cuba", "America/Havana", 897 "Egypt", "Africa/Cairo", 898 "Eire", "Europe/Dublin", 899 "Etc/GMT+0", "Etc/GMT", 900 "Etc/GMT-0", "Etc/GMT", 901 "Etc/GMT0", "Etc/GMT", 902 "Etc/Greenwich", "Etc/GMT", 903 "Etc/Universal", "Etc/UTC", 904 "Etc/Zulu", "Etc/UTC", 905 "Europe/Belfast", "Europe/London", 906 "Europe/Bratislava", "Europe/Prague", 907 "Europe/Busingen", "Europe/Zurich", 908 "Europe/Guernsey", "Europe/London", 909 "Europe/Isle_of_Man", "Europe/London", 910 "Europe/Jersey", "Europe/London", 911 "Europe/Ljubljana", "Europe/Belgrade", 912 "Europe/Mariehamn", "Europe/Helsinki", 913 "Europe/Nicosia", "Asia/Nicosia", 914 "Europe/Podgorica", "Europe/Belgrade", 915 "Europe/San_Marino", "Europe/Rome", 916 "Europe/Sarajevo", "Europe/Belgrade", 917 "Europe/Skopje", "Europe/Belgrade", 918 "Europe/Tiraspol", "Europe/Chisinau", 919 "Europe/Vaduz", "Europe/Zurich", 920 "Europe/Vatican", "Europe/Rome", 921 "Europe/Zagreb", "Europe/Belgrade", 922 "GB", "Europe/London", 923 "GB-Eire", "Europe/London", 924 "GMT", "Etc/GMT", 925 "GMT+0", "Etc/GMT", 926 "GMT-0", "Etc/GMT", 927 "GMT0", "Etc/GMT", 928 "Greenwich", "Etc/GMT", 929 "Hongkong", "Asia/Hong_Kong", 930 "Iceland", "Atlantic/Reykjavik", 931 "Indian/Antananarivo", "Africa/Nairobi", 932 "Indian/Comoro", "Africa/Nairobi", 933 "Indian/Mayotte", "Africa/Nairobi", 934 "Iran", "Asia/Tehran", 935 "Israel", "Asia/Jerusalem", 936 "Jamaica", "America/Jamaica", 937 "Japan", "Asia/Tokyo", 938 "Kwajalein", "Pacific/Kwajalein", 939 "Libya", "Africa/Tripoli", 940 "Mexico/BajaNorte", "America/Tijuana", 941 "Mexico/BajaSur", "America/Mazatlan", 942 "Mexico/General", "America/Mexico_City", 943 "Mideast/Riyadh87", "Asia/Riyadh87", 944 "Mideast/Riyadh88", "Asia/Riyadh88", 945 "Mideast/Riyadh89", "Asia/Riyadh89", 946 "NZ", "Pacific/Auckland", 947 "NZ-CHAT", "Pacific/Chatham", 948 "Navajo", "America/Denver", 949 "PRC", "Asia/Shanghai", 950 "Pacific/Johnston", "Pacific/Honolulu", 951 "Pacific/Midway", "Pacific/Pago_Pago", 952 "Pacific/Ponape", "Pacific/Pohnpei", 953 "Pacific/Saipan", "Pacific/Guam", 954 "Pacific/Samoa", "Pacific/Pago_Pago", 955 "Pacific/Truk", "Pacific/Chuuk", 956 "Pacific/Yap", "Pacific/Chuuk", 957 "Poland", "Europe/Warsaw", 958 "Portugal", "Europe/Lisbon", 959 "ROC", "Asia/Taipei", 960 "ROK", "Asia/Seoul", 961 "Singapore", "Asia/Singapore", 962 "Turkey", "Europe/Istanbul", 963 "UCT", "Etc/UCT", 964 "US/Alaska", "America/Anchorage", 965 "US/Aleutian", "America/Adak", 966 "US/Arizona", "America/Phoenix", 967 "US/Central", "America/Chicago", 968 "US/East-Indiana", "America/Indiana/Indianapolis", 969 "US/Eastern", "America/New_York", 970 "US/Hawaii", "Pacific/Honolulu", 971 "US/Indiana-Starke", "America/Indiana/Knox", 972 "US/Michigan", "America/Detroit", 973 "US/Mountain", "America/Denver", 974 "US/Pacific", "America/Los_Angeles", 975 "US/Samoa", "Pacific/Pago_Pago", 976 "UTC", "Etc/UTC", 977 "Universal", "Etc/UTC", 978 "W-SU", "Europe/Moscow", 979 "Zulu", "Etc/UTC", 980 }; 981 982 private static final Map<String, String> zidToMzone = new HashMap<>(); 983 private static final Map<String, String> mzoneToZid = new HashMap<>(); 984 private static final Map<String, Map<String, String>> mzoneToZidL = new HashMap<>(); 985 private static final Map<String, String> aliases = new HashMap<>(); 986 987 static { 988 for (int i = 0; i < zidMap.length; i += 3) { zidToMzone.put(zidMap[i], zidMap[i + 1])989 zidToMzone.put(zidMap[i], zidMap[i + 1]); mzoneToZid.put(zidMap[i + 1], zidMap[i + 2])990 mzoneToZid.put(zidMap[i + 1], zidMap[i + 2]); 991 } 992 993 for (int i = 0; i < mzoneMap.length; i += 3) { 994 String mzone = mzoneMap[i]; 995 Map<String, String> map = mzoneToZidL.get(mzone); 996 if (map == null) { 997 map = new HashMap<>(); mzoneToZidL.put(mzone, map)998 mzoneToZidL.put(mzone, map); 999 } map.put(mzoneMap[i + 1], mzoneMap[i + 2])1000 map.put(mzoneMap[i + 1], mzoneMap[i + 2]); 1001 } 1002 1003 for (int i = 0; i < aliasMap.length; i += 2) { aliases.put(aliasMap[i], aliasMap[i + 1])1004 aliases.put(aliasMap[i], aliasMap[i + 1]); 1005 } 1006 } 1007 } 1008