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