mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-08 06:53:45 +00:00
ICU-4175 functional (but temporary) display name fallback code, restore test
X-SVN-Rev: 18265
This commit is contained in:
parent
14ce26c396
commit
c157deef23
3 changed files with 492 additions and 297 deletions
|
@ -450,19 +450,19 @@ public class DateFormatTest extends com.ibm.icu.dev.test.TestFmwk {
|
|||
}
|
||||
}
|
||||
|
||||
/* not for 3.4 yet
|
||||
/* not for 3.4 yet */
|
||||
public void TestGenericTimeZoneDisplayNameFallback() {
|
||||
Calendar cal = new GregorianCalendar();
|
||||
long daylightDate = new Date(2005, 7, 1).getTime(); // aug 1
|
||||
long standardDate = new Date(2005, 0, 1).getTime(); // jan 1
|
||||
long julyDate = new Date(2004, 6, 15).getTime();
|
||||
long januaryDate = new Date(2004, 0, 15).getTime();
|
||||
|
||||
for (int i = 0; i < fallbackTests.length; ++i) {
|
||||
String[] info = fallbackTests[i];
|
||||
ULocale l = new ULocale(info[0]);
|
||||
TimeZone tz = TimeZone.getTimeZone(info[1]);
|
||||
long time = (info[2].equals("daylight") == (info[1].indexOf("Australia") == -1))
|
||||
? daylightDate
|
||||
: standardDate;
|
||||
long time = info[2].equals("2004-07-15T00:00:00Z")
|
||||
? julyDate
|
||||
: januaryDate;
|
||||
SimpleDateFormat fmt = new SimpleDateFormat(info[3], l);
|
||||
cal.setTimeInMillis(time);
|
||||
cal.setTimeZone(tz);
|
||||
|
@ -473,225 +473,290 @@ public class DateFormatTest extends com.ibm.icu.dev.test.TestFmwk {
|
|||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
/**/
|
||||
|
||||
private static final String[][] fallbackTests = {
|
||||
{ "en", "America/Los_Angeles", "daylight", "z", "PDT" },
|
||||
{ "en", "America/Los_Angeles", "daylight", "zzzz", "Pacific Daylight Time" },
|
||||
{ "en", "America/Los_Angeles", "standard", "z", "PST" },
|
||||
{ "en", "America/Los_Angeles", "standard", "zzzz", "Pacific Standard Time" },
|
||||
{ "en", "America/Los_Angeles", "standard", "v", "PT" },
|
||||
{ "en", "America/Los_Angeles", "standard", "vvvv", "Pacific Time" },
|
||||
{ "en", "America/Los_Angeles", "standard", "Z", "-0800" },
|
||||
{ "en", "America/Los_Angeles", "standard", "ZZZZ", "GMT-07:00" },
|
||||
{ "en", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800" },
|
||||
{ "en", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:00" },
|
||||
{ "en", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "PST" },
|
||||
{ "en", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "Pacific Standard Time" },
|
||||
{ "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700" },
|
||||
{ "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:00" },
|
||||
{ "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "PDT" },
|
||||
{ "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "Pacific Daylight Time" },
|
||||
{ "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "PT" },
|
||||
{ "en", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "Pacific Time" },
|
||||
|
||||
{ "en", "America/Argentina/Buenos_Aires", "daylight", "z", "GMT-03:00" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "daylight", "zzzz", "GMT-03:00" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "standard", "z", "GMT-03:00" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "standard", "zzzz", "GMT-03:00" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "standard", "v", "Buenos Aires (Argentina)" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "standard", "vvvv", "Buenos Aires (Argentina)" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "standard", "Z", "-0300" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "standard", "ZZZZ", "GMT-03:00" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-03:00" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-03:00" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-03:00" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Buenos Aires (Argentina)" },
|
||||
{ "en", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Buenos Aires (Argentina)" },
|
||||
|
||||
{ "en", "America/Buenos_Aires", "daylight", "z", "GMT-03:00" },
|
||||
{ "en", "America/Buenos_Aires", "daylight", "zzzz", "GMT-03:00" },
|
||||
{ "en", "America/Buenos_Aires", "standard", "z", "GMT-03:00" },
|
||||
{ "en", "America/Buenos_Aires", "standard", "zzzz", "GMT-03:00" },
|
||||
{ "en", "America/Buenos_Aires", "standard", "v", "Buenos Aires (Argentina)" },
|
||||
{ "en", "America/Buenos_Aires", "standard", "vvvv", "Buenos Aires (Argentina)" },
|
||||
{ "en", "America/Buenos_Aires", "standard", "Z", "-0300" },
|
||||
{ "en", "America/Buenos_Aires", "standard", "ZZZZ", "GMT-03:00" },
|
||||
{ "en", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "en", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00" },
|
||||
{ "en", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-03:00" },
|
||||
{ "en", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-03:00" },
|
||||
{ "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00" },
|
||||
{ "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-03:00" },
|
||||
{ "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00" },
|
||||
{ "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Buenos Aires (Argentina)" },
|
||||
{ "en", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Buenos Aires (Argentina)" },
|
||||
|
||||
{ "en", "America/Havana", "daylight", "z", "GMT-04:00" },
|
||||
{ "en", "America/Havana", "daylight", "zzzz", "GMT-04:00" },
|
||||
{ "en", "America/Havana", "standard", "z", "GMT-05:00" },
|
||||
{ "en", "America/Havana", "standard", "zzzz", "GMT-05:00" },
|
||||
{ "en", "America/Havana", "standard", "v", "Cuba" },
|
||||
{ "en", "America/Havana", "standard", "vvvv", "Cuba" },
|
||||
{ "en", "America/Havana", "standard", "Z", "-0500" },
|
||||
{ "en", "America/Havana", "standard", "ZZZZ", "GMT-04:00" },
|
||||
{ "en", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500" },
|
||||
{ "en", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-05:00" },
|
||||
{ "en", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-05:00" },
|
||||
{ "en", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "GMT-05:00" },
|
||||
{ "en", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400" },
|
||||
{ "en", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-04:00" },
|
||||
{ "en", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-04:00" },
|
||||
{ "en", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "GMT-04:00" },
|
||||
{ "en", "America/Havana", "2004-07-15T00:00:00Z", "v", "Cuba" },
|
||||
{ "en", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "Cuba" },
|
||||
|
||||
{ "en", "Australia/ACT", "daylight", "z", "GMT-11:00" },
|
||||
{ "en", "Australia/ACT", "daylight", "zzzz", "GMT-11:00" },
|
||||
{ "en", "Australia/ACT", "standard", "z", "GMT-10:00" },
|
||||
{ "en", "Australia/ACT", "standard", "zzzz", "GMT-10:00" },
|
||||
{ "en", "Australia/ACT", "standard", "v", "Sydney (Australia)" },
|
||||
{ "en", "Australia/ACT", "standard", "vvvv", "Sydney (Australia)" },
|
||||
{ "en", "Australia/ACT", "standard", "Z", "+1000" },
|
||||
{ "en", "Australia/ACT", "standard", "ZZZZ", "GMT-11:00" },
|
||||
{ "en", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100" },
|
||||
{ "en", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00" },
|
||||
{ "en", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+11:00" },
|
||||
{ "en", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00" },
|
||||
{ "en", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000" },
|
||||
{ "en", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00" },
|
||||
{ "en", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+10:00" },
|
||||
{ "en", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00" },
|
||||
{ "en", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "Sydney (Australia)" },
|
||||
{ "en", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "Sydney (Australia)" },
|
||||
|
||||
{ "en", "Australia/Sydney", "daylight", "z", "GMT-11:00" },
|
||||
{ "en", "Australia/Sydney", "daylight", "zzzz", "GMT-11:00" },
|
||||
{ "en", "Australia/Sydney", "standard", "z", "GMT-10:00" },
|
||||
{ "en", "Australia/Sydney", "standard", "zzzz", "GMT-10:00" },
|
||||
{ "en", "Australia/Sydney", "standard", "v", "Sydney (Australia)" },
|
||||
{ "en", "Australia/Sydney", "standard", "vvvv", "Sydney (Australia)" },
|
||||
{ "en", "Australia/Sydney", "standard", "Z", "+1000" },
|
||||
{ "en", "Australia/Sydney", "standard", "ZZZZ", "GMT-11:00" },
|
||||
{ "en", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100" },
|
||||
{ "en", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00" },
|
||||
{ "en", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+11:00" },
|
||||
{ "en", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00" },
|
||||
{ "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000" },
|
||||
{ "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00" },
|
||||
{ "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+10:00" },
|
||||
{ "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00" },
|
||||
{ "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "Sydney (Australia)" },
|
||||
{ "en", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "Sydney (Australia)" },
|
||||
|
||||
{ "bg", "America/Los_Angeles", "daylight", "z", "PDT" },
|
||||
{ "bg", "America/Los_Angeles", "daylight", "zzzz", "\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430" },
|
||||
{ "bg", "America/Los_Angeles", "standard", "z", "PST" },
|
||||
{ "bg", "America/Los_Angeles", "standard", "zzzz", "\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430" },
|
||||
{ "bg", "America/Los_Angeles", "standard", "v", "\u041b\u043e\u0441 \u0410\u043d\u0436\u0435\u043b\u0438\u0441 (\u0421\u0410\u0429)" },
|
||||
{ "bg", "America/Los_Angeles", "standard", "vvvv", "\u041b\u043e\u0441 \u0410\u043d\u0436\u0435\u043b\u0438\u0441 (\u0421\u0410\u0429)" },
|
||||
{ "bg", "America/Los_Angeles", "standard", "Z", "-0800" },
|
||||
{ "bg", "America/Los_Angeles", "standard", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0700" },
|
||||
// ==========
|
||||
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "daylight", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "daylight", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "standard", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "standard", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "standard", "v", "\u0411\u0443\u0435\u043d\u043e\u0441 \u0410\u0439\u0440\u0435\u0441 (\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0430)" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "standard", "vvvv", "\u0411\u0443\u0435\u043d\u043e\u0441 \u0410\u0439\u0440\u0435\u0441 (\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0430)" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "standard", "Z", "-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "standard", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "fr", "America/Havana", "2004-07-15T00:00:00Z", "v", "Cuba" },
|
||||
{ "fr", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "Cuba" },
|
||||
{ "fr", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "Sydney (Australie)" },
|
||||
{ "fr", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "Sydney (Australie)" },
|
||||
|
||||
{ "bg", "America/Buenos_Aires", "daylight", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "daylight", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "standard", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "standard", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "standard", "v", "\u0411\u0443\u0435\u043d\u043e\u0441 \u0410\u0439\u0440\u0435\u0441 (\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0430)" },
|
||||
{ "bg", "America/Buenos_Aires", "standard", "vvvv", "\u0411\u0443\u0435\u043d\u043e\u0441 \u0410\u0439\u0440\u0435\u0441 (\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0430)" },
|
||||
{ "bg", "America/Buenos_Aires", "standard", "Z", "-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "standard", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
// ==========
|
||||
|
||||
{ "bg", "America/Havana", "daylight", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0400" },
|
||||
{ "bg", "America/Havana", "daylight", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0400" },
|
||||
{ "bg", "America/Havana", "standard", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0500" },
|
||||
{ "bg", "America/Havana", "standard", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0500" },
|
||||
{ "bg", "America/Havana", "standard", "v", "\u041a\u0443\u0431\u0430" },
|
||||
{ "bg", "America/Havana", "standard", "vvvv", "\u041a\u0443\u0431\u0430" },
|
||||
{ "bg", "America/Havana", "standard", "Z", "-0500" },
|
||||
{ "bg", "America/Havana", "standard", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0400" },
|
||||
{ "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800" },
|
||||
{ "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0800" },
|
||||
{ "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "PST" },
|
||||
{ "bg", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430" },
|
||||
{ "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700" },
|
||||
{ "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0700" },
|
||||
{ "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "PDT" },
|
||||
{ "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430" },
|
||||
// bg does have an exemplar city for America/Los_Angeles, so no country code
|
||||
{ "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "\u041b\u043e\u0441 \u0410\u043d\u0436\u0435\u043b\u0438\u0441" },
|
||||
{ "bg", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "\u041b\u043e\u0441 \u0410\u043d\u0436\u0435\u043b\u0438\u0441" },
|
||||
|
||||
{ "bg", "Australia/ACT", "daylight", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-1100" },
|
||||
{ "bg", "Australia/ACT", "daylight", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-1100" },
|
||||
{ "bg", "Australia/ACT", "standard", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-1000" },
|
||||
{ "bg", "Australia/ACT", "standard", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-1000" },
|
||||
{ "bg", "Australia/ACT", "standard", "v", "\u0421\u0438\u0434\u043d\u0438 (\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f)" },
|
||||
{ "bg", "Australia/ACT", "standard", "vvvv", "\u0421\u0438\u0434\u043d\u0438 (\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f)" },
|
||||
{ "bg", "Australia/ACT", "standard", "Z", "+1000" },
|
||||
{ "bg", "Australia/ACT", "standard", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-1100" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
// exemplar city for buenos aires is draft, so we use fallback with localized country
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Buenos Aires (\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0430)" },
|
||||
{ "bg", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Buenos Aires (\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0430)" },
|
||||
|
||||
{ "bg", "Australia/Sydney", "daylight", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-1100" },
|
||||
{ "bg", "Australia/Sydney", "daylight", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-1100" },
|
||||
{ "bg", "Australia/Sydney", "standard", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-1000" },
|
||||
{ "bg", "Australia/Sydney", "standard", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-1000" },
|
||||
{ "bg", "Australia/Sydney", "standard", "v", "\u0421\u0438\u0434\u043d\u0438 (\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f)" },
|
||||
{ "bg", "Australia/Sydney", "standard", "vvvv", "\u0421\u0438\u0434\u043d\u0438 (\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f)" },
|
||||
{ "bg", "Australia/Sydney", "standard", "Z", "+1000" },
|
||||
{ "bg", "Australia/Sydney", "standard", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-1100" },
|
||||
{ "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0300" },
|
||||
{ "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Buenos Aires (\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0430)" },
|
||||
{ "bg", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Buenos Aires (\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0430)" },
|
||||
|
||||
{ "bg", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500" },
|
||||
{ "bg", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0500" },
|
||||
{ "bg", "America/Havana", "2004-01-15T00:00:00Z", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0500" },
|
||||
{ "bg", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0500" },
|
||||
{ "bg", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400" },
|
||||
{ "bg", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0400" },
|
||||
{ "bg", "America/Havana", "2004-07-15T00:00:00Z", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0400" },
|
||||
{ "bg", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447-0400" },
|
||||
{ "bg", "America/Havana", "2004-07-15T00:00:00Z", "v", "\u041A\u0443\u0431\u0430" },
|
||||
{ "bg", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\u041A\u0443\u0431\u0430" },
|
||||
|
||||
{ "hi", "America/Los_Angeles", "daylight", "z", "GMT-\u0966\u096d:\u0966\u0966" },
|
||||
{ "hi", "America/Los_Angeles", "daylight", "zzzz", "GMT-\u0966\u096d:\u0966\u0966" },
|
||||
{ "hi", "America/Los_Angeles", "standard", "z", "GMT-\u0966\u096e:\u0966\u0966" },
|
||||
{ "hi", "America/Los_Angeles", "standard", "zzzz", "GMT-\u0966\u096e:\u0966\u0966" },
|
||||
{ "hi", "America/Los_Angeles", "standard", "v", "Los Angeles (\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0905\u092e\u0930\u093f\u0915\u093e)" },
|
||||
{ "hi", "America/Los_Angeles", "standard", "vvvv", "Los Angeles (\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0905\u092e\u0930\u093f\u0915\u093e)" },
|
||||
{ "hi", "America/Los_Angeles", "standard", "Z", "-0800" },
|
||||
{ "hi", "America/Los_Angeles", "standard", "ZZZZ", "GMT-\u0966\u096d:\u0966\u0966" },
|
||||
{ "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100" },
|
||||
{ "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1100" },
|
||||
{ "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1100" },
|
||||
{ "bg", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1100" },
|
||||
{ "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000" },
|
||||
{ "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1000" },
|
||||
{ "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1000" },
|
||||
{ "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1000" },
|
||||
// exemplar city for Australia is draft
|
||||
{ "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "Sydney (\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f)" },
|
||||
{ "bg", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "Sydney (\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f)" },
|
||||
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "daylight", "z", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "daylight", "zzzz", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "standard", "z", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "standard", "zzzz", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "standard", "v", "Buenos Aires (\u0905\u0930\u094d\u091c\u0947\u0928\u094d\u091f\u0940\u0928\u093e)" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "standard", "vvvv", "Buenos Aires (\u0905\u0930\u094d\u091c\u0947\u0928\u094d\u091f\u0940\u0928\u093e)" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "standard", "Z", "-0300" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "standard", "ZZZZ", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100" },
|
||||
{ "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1100" },
|
||||
{ "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1100" },
|
||||
{ "bg", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1100" },
|
||||
{ "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000" },
|
||||
{ "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1000" },
|
||||
{ "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1000" },
|
||||
{ "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447+1000" },
|
||||
{ "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "Sydney (\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f)" },
|
||||
{ "bg", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "Sydney (\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f)" },
|
||||
|
||||
{ "hi", "America/Buenos_Aires", "daylight", "z", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Buenos_Aires", "daylight", "zzzz", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Buenos_Aires", "standard", "z", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Buenos_Aires", "standard", "zzzz", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Buenos_Aires", "standard", "v", "Buenos Aires (\u0905\u0930\u094d\u091c\u0947\u0928\u094d\u091f\u0940\u0928\u093e)" },
|
||||
{ "hi", "America/Buenos_Aires", "standard", "vvvv", "Buenos Aires (\u0905\u0930\u094d\u091c\u0947\u0928\u094d\u091f\u0940\u0928\u093e)" },
|
||||
{ "hi", "America/Buenos_Aires", "standard", "Z", "-0300" },
|
||||
{ "hi", "America/Buenos_Aires", "standard", "ZZZZ", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
// ==========
|
||||
|
||||
{ "hi", "America/Havana", "daylight", "z", "GMT-\u0966\u096a:\u0966\u0966" },
|
||||
{ "hi", "America/Havana", "daylight", "zzzz", "GMT-\u0966\u096a:\u0966\u0966" },
|
||||
{ "hi", "America/Havana", "standard", "z", "GMT-\u0966\u096b:\u0966\u0966" },
|
||||
{ "hi", "America/Havana", "standard", "zzzz", "GMT-\u0966\u096b:\u0966\u0966" },
|
||||
{ "hi", "America/Havana", "standard", "v", "\u0915\u094d\u092f\u0942\u092c\u093e" },
|
||||
{ "hi", "America/Havana", "standard", "vvvv", "\u0915\u094d\u092f\u0942\u092c\u093e" },
|
||||
{ "hi", "America/Havana", "standard", "Z", "-0500" },
|
||||
{ "hi", "America/Havana", "standard", "ZZZZ", "GMT-\u0966\u096a:\u0966\u0966" },
|
||||
{ "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800" },
|
||||
{ "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-\u0966\u096e:\u0966\u0966" },
|
||||
{ "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-\u0966\u096e:\u0966\u0966" },
|
||||
{ "hi", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "GMT-\u0966\u096e:\u0966\u0966" },
|
||||
{ "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700" },
|
||||
{ "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-\u0966\u096d:\u0966\u0966" },
|
||||
{ "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-\u0966\u096d:\u0966\u0966" },
|
||||
{ "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "GMT-\u0966\u096d:\u0966\u0966" },
|
||||
{ "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "Los Angeles (\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0905\u092e\u0930\u093f\u0915\u093e)" },
|
||||
{ "hi", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "Los Angeles (\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0905\u092e\u0930\u093f\u0915\u093e)" },
|
||||
|
||||
{ "hi", "Australia/ACT", "daylight", "z", "GMT-\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "Australia/ACT", "daylight", "zzzz", "GMT-\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "Australia/ACT", "standard", "z", "GMT-\u0967\u0966:\u0966\u0966" },
|
||||
{ "hi", "Australia/ACT", "standard", "zzzz", "GMT-\u0967\u0966:\u0966\u0966" },
|
||||
{ "hi", "Australia/ACT", "standard", "v", "Sydney (\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e)" },
|
||||
{ "hi", "Australia/ACT", "standard", "vvvv", "Sydney (\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e)" },
|
||||
{ "hi", "Australia/ACT", "standard", "Z", "+1000" },
|
||||
{ "hi", "Australia/ACT", "standard", "ZZZZ", "GMT-\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Buenos Aires (\u0905\u0930\u094d\u091c\u0947\u0928\u094d\u091f\u0940\u0928\u093e)" },
|
||||
{ "hi", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Buenos Aires (\u0905\u0930\u094d\u091c\u0947\u0928\u094d\u091f\u0940\u0928\u093e)" },
|
||||
|
||||
{ "hi", "Australia/Sydney", "daylight", "z", "GMT-\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "Australia/Sydney", "daylight", "zzzz", "GMT-\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "Australia/Sydney", "standard", "z", "GMT-\u0967\u0966:\u0966\u0966" },
|
||||
{ "hi", "Australia/Sydney", "standard", "zzzz", "GMT-\u0967\u0966:\u0966\u0966" },
|
||||
{ "hi", "Australia/Sydney", "standard", "v", "Sydney (\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e)" },
|
||||
{ "hi", "Australia/Sydney", "standard", "vvvv", "Sydney (\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e)" },
|
||||
{ "hi", "Australia/Sydney", "standard", "Z", "+1000" },
|
||||
{ "hi", "Australia/Sydney", "standard", "ZZZZ", "GMT-\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "hi", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-\u0966\u0969:\u0966\u0966" },
|
||||
{ "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Buenos Aires (\u0905\u0930\u094d\u091c\u0947\u0928\u094d\u091f\u0940\u0928\u093e)" },
|
||||
{ "hi", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Buenos Aires (\u0905\u0930\u094d\u091c\u0947\u0928\u094d\u091f\u0940\u0928\u093e)" },
|
||||
|
||||
{ "as", "America/Los_Angeles", "daylight", "z", "GMT-07:00" },
|
||||
{ "as", "America/Los_Angeles", "daylight", "zzzz", "GMT-07:00" },
|
||||
{ "as", "America/Los_Angeles", "standard", "z", "GMT-08:00" },
|
||||
{ "as", "America/Los_Angeles", "standard", "zzzz", "GMT-08:00" },
|
||||
{ "as", "America/Los_Angeles", "standard", "v", "Los Angeles (US)" },
|
||||
{ "as", "America/Los_Angeles", "standard", "vvvv", "Los Angeles (US)" },
|
||||
{ "as", "America/Los_Angeles", "standard", "Z", "-0800" },
|
||||
{ "as", "America/Los_Angeles", "standard", "ZZZZ", "GMT-07:00" },
|
||||
{ "hi", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500" },
|
||||
{ "hi", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-\u0966\u096b:\u0966\u0966" },
|
||||
{ "hi", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-\u0966\u096b:\u0966\u0966" },
|
||||
{ "hi", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "GMT-\u0966\u096b:\u0966\u0966" },
|
||||
{ "hi", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400" },
|
||||
{ "hi", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-\u0966\u096a:\u0966\u0966" },
|
||||
{ "hi", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-\u0966\u096a:\u0966\u0966" },
|
||||
{ "hi", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "GMT-\u0966\u096a:\u0966\u0966" },
|
||||
{ "hi", "America/Havana", "2004-07-15T00:00:00Z", "v", "\u0915\u094d\u092f\u0942\u092c\u093e" },
|
||||
{ "hi", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "\u0915\u094d\u092f\u0942\u092c\u093e" },
|
||||
|
||||
{ "as", "America/Argentina/Buenos_Aires", "daylight", "z", "GMT-03:00" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "daylight", "zzzz", "GMT-03:00" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "standard", "z", "GMT-03:00" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "standard", "zzzz", "GMT-03:00" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "standard", "v", "Buenos Aires (AR)" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "standard", "vvvv", "Buenos Aires (AR)" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "standard", "Z", "-0300" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "standard", "ZZZZ", "GMT-03:00" },
|
||||
{ "hi", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100" },
|
||||
{ "hi", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "GMT+\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000" },
|
||||
{ "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+\u0967\u0966:\u0966\u0966" },
|
||||
{ "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+\u0967\u0966:\u0966\u0966" },
|
||||
{ "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "GMT+\u0967\u0966:\u0966\u0966" },
|
||||
{ "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "Sydney (\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e)" },
|
||||
{ "hi", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "Sydney (\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e)" },
|
||||
|
||||
{ "as", "America/Buenos_Aires", "daylight", "z", "GMT-03:00" },
|
||||
{ "as", "America/Buenos_Aires", "daylight", "zzzz", "GMT-03:00" },
|
||||
{ "as", "America/Buenos_Aires", "standard", "z", "GMT-03:00" },
|
||||
{ "as", "America/Buenos_Aires", "standard", "zzzz", "GMT-03:00" },
|
||||
{ "as", "America/Buenos_Aires", "standard", "v", "Buenos Aires (AR)" },
|
||||
{ "as", "America/Buenos_Aires", "standard", "vvvv", "Buenos Aires (AR)" },
|
||||
{ "as", "America/Buenos_Aires", "standard", "Z", "-0300" },
|
||||
{ "as", "America/Buenos_Aires", "standard", "ZZZZ", "GMT-03:00" },
|
||||
{ "hi", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100" },
|
||||
{ "hi", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "GMT+\u0967\u0967:\u0966\u0966" },
|
||||
{ "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000" },
|
||||
{ "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+\u0967\u0966:\u0966\u0966" },
|
||||
{ "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+\u0967\u0966:\u0966\u0966" },
|
||||
{ "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "GMT+\u0967\u0966:\u0966\u0966" },
|
||||
{ "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "Sydney (\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e)" },
|
||||
{ "hi", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "Sydney (\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e)" },
|
||||
|
||||
{ "as", "America/Havana", "daylight", "z", "GMT-04:00" },
|
||||
{ "as", "America/Havana", "daylight", "zzzz", "GMT-04:00" },
|
||||
{ "as", "America/Havana", "standard", "z", "GMT-05:00" },
|
||||
{ "as", "America/Havana", "standard", "zzzz", "GMT-05:00" },
|
||||
{ "as", "America/Havana", "standard", "v", "CU" },
|
||||
{ "as", "America/Havana", "standard", "vvvv", "CU" },
|
||||
{ "as", "America/Havana", "standard", "Z", "-0500" },
|
||||
{ "as", "America/Havana", "standard", "ZZZZ", "GMT-04:00" },
|
||||
// ==========
|
||||
|
||||
{ "as", "Australia/ACT", "daylight", "z", "GMT-11:00" },
|
||||
{ "as", "Australia/ACT", "daylight", "zzzz", "GMT-11:00" },
|
||||
{ "as", "Australia/ACT", "standard", "z", "GMT-10:00" },
|
||||
{ "as", "Australia/ACT", "standard", "zzzz", "GMT-10:00" },
|
||||
{ "as", "Australia/ACT", "standard", "v", "Sydney (AU)" },
|
||||
{ "as", "Australia/ACT", "standard", "vvvv", "Sydney (AU)" },
|
||||
{ "as", "Australia/ACT", "standard", "Z", "+1000" },
|
||||
{ "as", "Australia/ACT", "standard", "ZZZZ", "GMT-11:00" },
|
||||
{ "as", "America/Los_Angeles", "2004-01-15T00:00:00Z", "Z", "-0800" },
|
||||
{ "as", "America/Los_Angeles", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-08:00" },
|
||||
{ "as", "America/Los_Angeles", "2004-01-15T00:00:00Z", "z", "GMT-08:00" },
|
||||
{ "as", "America/Los_Angeles", "2004-01-15T00:00:00Z", "zzzz", "GMT-08:00" },
|
||||
{ "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "Z", "-0700" },
|
||||
{ "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-07:00" },
|
||||
{ "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "z", "GMT-07:00" },
|
||||
{ "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "zzzz", "GMT-07:00" },
|
||||
{ "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "v", "Los Angeles (US)" },
|
||||
{ "as", "America/Los_Angeles", "2004-07-15T00:00:00Z", "vvvv", "Los Angeles (US)" },
|
||||
|
||||
{ "as", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-03:00" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-03:00" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-03:00" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Buenos Aires (AR)" },
|
||||
{ "as", "America/Argentina/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Buenos Aires (AR)" },
|
||||
|
||||
{ "as", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "as", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-03:00" },
|
||||
{ "as", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "z", "GMT-03:00" },
|
||||
{ "as", "America/Buenos_Aires", "2004-01-15T00:00:00Z", "zzzz", "GMT-03:00" },
|
||||
{ "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "Z", "-0300" },
|
||||
{ "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-03:00" },
|
||||
{ "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "z", "GMT-03:00" },
|
||||
{ "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "zzzz", "GMT-03:00" },
|
||||
{ "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "v", "Buenos Aires (AR)" },
|
||||
{ "as", "America/Buenos_Aires", "2004-07-15T00:00:00Z", "vvvv", "Buenos Aires (AR)" },
|
||||
|
||||
{ "as", "America/Havana", "2004-01-15T00:00:00Z", "Z", "-0500" },
|
||||
{ "as", "America/Havana", "2004-01-15T00:00:00Z", "ZZZZ", "GMT-05:00" },
|
||||
{ "as", "America/Havana", "2004-01-15T00:00:00Z", "z", "GMT-05:00" },
|
||||
{ "as", "America/Havana", "2004-01-15T00:00:00Z", "zzzz", "GMT-05:00" },
|
||||
{ "as", "America/Havana", "2004-07-15T00:00:00Z", "Z", "-0400" },
|
||||
{ "as", "America/Havana", "2004-07-15T00:00:00Z", "ZZZZ", "GMT-04:00" },
|
||||
{ "as", "America/Havana", "2004-07-15T00:00:00Z", "z", "GMT-04:00" },
|
||||
{ "as", "America/Havana", "2004-07-15T00:00:00Z", "zzzz", "GMT-04:00" },
|
||||
// modified pending resolution of rule 5 question
|
||||
{ "as", "America/Havana", "2004-07-15T00:00:00Z", "v", "Havana (CU)" },
|
||||
{ "as", "America/Havana", "2004-07-15T00:00:00Z", "vvvv", "Havana (CU)" },
|
||||
|
||||
{ "as", "Australia/ACT", "2004-01-15T00:00:00Z", "Z", "+1100" },
|
||||
{ "as", "Australia/ACT", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00" },
|
||||
{ "as", "Australia/ACT", "2004-01-15T00:00:00Z", "z", "GMT+11:00" },
|
||||
{ "as", "Australia/ACT", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00" },
|
||||
{ "as", "Australia/ACT", "2004-07-15T00:00:00Z", "Z", "+1000" },
|
||||
{ "as", "Australia/ACT", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00" },
|
||||
{ "as", "Australia/ACT", "2004-07-15T00:00:00Z", "z", "GMT+10:00" },
|
||||
{ "as", "Australia/ACT", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00" },
|
||||
{ "as", "Australia/ACT", "2004-07-15T00:00:00Z", "v", "Sydney (AU)" },
|
||||
{ "as", "Australia/ACT", "2004-07-15T00:00:00Z", "vvvv", "Sydney (AU)" },
|
||||
|
||||
{ "as", "Australia/Sydney", "2004-01-15T00:00:00Z", "Z", "+1100" },
|
||||
{ "as", "Australia/Sydney", "2004-01-15T00:00:00Z", "ZZZZ", "GMT+11:00" },
|
||||
{ "as", "Australia/Sydney", "2004-01-15T00:00:00Z", "z", "GMT+11:00" },
|
||||
{ "as", "Australia/Sydney", "2004-01-15T00:00:00Z", "zzzz", "GMT+11:00" },
|
||||
{ "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "Z", "+1000" },
|
||||
{ "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "ZZZZ", "GMT+10:00" },
|
||||
{ "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "z", "GMT+10:00" },
|
||||
{ "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "zzzz", "GMT+10:00" },
|
||||
{ "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "v", "Sydney (AU)" },
|
||||
{ "as", "Australia/Sydney", "2004-07-15T00:00:00Z", "vvvv", "Sydney (AU)" },
|
||||
|
||||
{ "as", "Australia/Sydney", "daylight", "z", "GMT-11:00" },
|
||||
{ "as", "Australia/Sydney", "daylight", "zzzz", "GMT-11:00" },
|
||||
{ "as", "Australia/Sydney", "standard", "z", "GMT-10:00" },
|
||||
{ "as", "Australia/Sydney", "standard", "zzzz", "GMT-10:00" },
|
||||
{ "as", "Australia/Sydney", "standard", "v", "Sydney (AU)" },
|
||||
{ "as", "Australia/Sydney", "standard", "vvvv", "Sydney (AU)" },
|
||||
{ "as", "Australia/Sydney", "standard", "Z", "+1000" },
|
||||
{ "as", "Australia/Sydney", "standard", "ZZZZ", "GMT-11:00" },
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -19,6 +19,9 @@ import java.util.Set;
|
|||
import java.util.TreeMap;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import com.ibm.icu.text.MessageFormat;
|
||||
import com.ibm.icu.text.SimpleDateFormat;
|
||||
import com.ibm.icu.util.TimeZone;
|
||||
import com.ibm.icu.util.ULocale;
|
||||
import com.ibm.icu.util.UResourceBundle;
|
||||
|
||||
|
@ -168,6 +171,45 @@ public final class ZoneMeta {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// translation of appendix j
|
||||
// A) "Canonicalize the olson ID"
|
||||
// --> map the passed-in id to an olson id.
|
||||
// A.1) if there is no such id, goto C (GMT)
|
||||
//
|
||||
// B) "If there is an exact translation in the resolved locale, use it"
|
||||
// --> get the zone info data for this locale. check to see if it came from a
|
||||
// fallback of this locale (and didn't go up the defaultLocale chain). (note: record this as 'IS_VALID')
|
||||
// B.1) if it did, check to see that the requested form is available (long/short, generic/standard/daylight)
|
||||
// B.1.a) if it is, return it.
|
||||
//
|
||||
// C) "For non-wall-time, use GMT format"
|
||||
// --> if not generic, look up GMT format, translation, and hours, format the offset value, and return.
|
||||
//
|
||||
// D) "If there is an exemplar city, use the region format"
|
||||
// --> look up the exemplar city, and if found, look up region format, format the city, and return.
|
||||
//
|
||||
// E) "If there is a country for the time zone..."
|
||||
// --> the time zone is not associated with 'no country' (note: record this as 'COUNTRY_CODE')
|
||||
// "and a translation in the locale for the country name..."
|
||||
// --> if IS_VALID (see B) and there is a translation for the country (note: record this as 'COUNTRY')
|
||||
// "and the country has one modern time zone or is in the singleCountries list..."
|
||||
// --> if the info is marked true for this time zone
|
||||
// "use it with the region format"
|
||||
// --> look up the region format, format the country, and return.
|
||||
//
|
||||
// F) "If it is a perpetual alias..."
|
||||
// --> no idea what this means, so skip
|
||||
//
|
||||
// G) "Fall back to the raw Olson ID, using the fallback format
|
||||
// --> convert the tail of the time zone id to a city string as described (note: record this as 'CITY')
|
||||
// G.1 if (COUNTRY is null) set COUNTRY to COUNTRY_CODE
|
||||
// G.2 else format the city and country using the fallback format, and return.
|
||||
//
|
||||
// H) "Else use the (possibly multi-offset) GMT format
|
||||
// --> else no country? but we've fallen back to the raw olson id... how do we reach this point?
|
||||
// --> also, it sounds like i'd need to examine the GMT format string to see if it is multi-offset or not
|
||||
|
||||
private static String[] getCanonicalInfo(String id) {
|
||||
if (canonicalMap == null) {
|
||||
Map m = new HashMap();
|
||||
|
@ -190,14 +232,14 @@ public final class ZoneMeta {
|
|||
|
||||
/**
|
||||
* Return the canonical id for this tzid, which might be the id itself.
|
||||
* If there is no canonical id for it, return null.
|
||||
* If there is no canonical id for it, return the passed-in id.
|
||||
*/
|
||||
public static String getCanonicalID(String tzid) {
|
||||
String[] info = getCanonicalInfo(tzid);
|
||||
if (info != null) {
|
||||
return info[0];
|
||||
}
|
||||
return null;
|
||||
return tzid;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -227,58 +269,136 @@ public final class ZoneMeta {
|
|||
}
|
||||
|
||||
/**
|
||||
* Given a country code, return the display name in the provided locale, or null if
|
||||
* there is no localization for the country code.
|
||||
* Handle fallbacks for generic time (rules E.. G)
|
||||
*/
|
||||
public static String getCountryDisplayNameForCode(String cc, ULocale locale) {
|
||||
ICUResourceBundle rb =
|
||||
(ICUResourceBundle)UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME, locale);
|
||||
ICUResourceBundle countries = rb.get("Countries");
|
||||
ICUResourceBundle country = countries.get(cc);
|
||||
String displayName = country.getString();
|
||||
public static String displayFallback(String tzid, ULocale locale) {
|
||||
String[] info = getCanonicalInfo(tzid);
|
||||
if (info == null) {
|
||||
return null; // error
|
||||
}
|
||||
|
||||
return displayName;
|
||||
}
|
||||
String country_code = info[1];
|
||||
|
||||
String country = null;
|
||||
if (country_code != null) {
|
||||
ICUResourceBundle rb =
|
||||
(ICUResourceBundle)UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME, locale);
|
||||
String rblocname = rb.getULocale().getBaseName();
|
||||
if (LocaleUtility.isFallbackOf(rblocname, locale.getBaseName())) {
|
||||
// dlf: need a utility on ULocale for this
|
||||
// only valid data, don't fallback through default
|
||||
ICUResourceBundle csb = rb.get("Countries");
|
||||
ICUResourceBundle cb = csb.get(country_code);
|
||||
country = cb.getString();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Looks up the country code from the time zone id, then looks up the display
|
||||
* name for the country code, and defaults to the country code if the display
|
||||
* name is not available. If there's no country code at all, return null.
|
||||
*/
|
||||
public static String getCountryDisplayNameForID(String tzid, ULocale locale) {
|
||||
String cc = getCanonicalCountry(tzid);
|
||||
if (cc != null) {
|
||||
String displayName = getCountryDisplayNameForCode(cc, locale);
|
||||
if (displayName != null) {
|
||||
cc = displayName;
|
||||
if (country != null && info[2] != null) { // single country
|
||||
return displayRegion(country, locale);
|
||||
}
|
||||
|
||||
String city = tzid.substring(tzid.lastIndexOf('/')+1);
|
||||
int n;
|
||||
if ((n = city.indexOf('_')) != -1) {
|
||||
char[] chars = city.toCharArray();
|
||||
for (; n < chars.length; ++n) {
|
||||
if (chars[n] == '_') {
|
||||
chars[n] = ' ';
|
||||
}
|
||||
}
|
||||
city = new String(chars);
|
||||
}
|
||||
|
||||
if (country == null) {
|
||||
country = country_code;
|
||||
}
|
||||
|
||||
String flbPat = getTZLocalizationInfo(locale, FALLBACK_FORMAT);
|
||||
MessageFormat mf = new MessageFormat(flbPat);
|
||||
|
||||
return mf.format(new Object[] { city, country });
|
||||
}
|
||||
|
||||
public static String displayRegion(String cityOrCountry, ULocale locale) {
|
||||
String regPat = getTZLocalizationInfo(locale, REGION_FORMAT);
|
||||
MessageFormat mf = new MessageFormat(regPat);
|
||||
return mf.format(new Object[] { cityOrCountry });
|
||||
}
|
||||
|
||||
public static String displayGMT(long value, ULocale locale) {
|
||||
String msgpat = getTZLocalizationInfo(locale, GMT);
|
||||
String dtepat = getTZLocalizationInfo(locale, HOUR);
|
||||
|
||||
int n = dtepat.indexOf(';');
|
||||
if (n != -1) {
|
||||
if (value < 0) {
|
||||
value = - value;
|
||||
dtepat = dtepat.substring(n+1);
|
||||
} else {
|
||||
dtepat = dtepat.substring(0, n);
|
||||
}
|
||||
}
|
||||
|
||||
return cc;
|
||||
final long mph = 3600000;
|
||||
final long mpm = 60000;
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(dtepat, locale);
|
||||
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||
String res = sdf.format(new Long(value));
|
||||
MessageFormat mf = new MessageFormat(msgpat);
|
||||
res = mf.format(new Object[] { res });
|
||||
return res;
|
||||
}
|
||||
|
||||
public static final int
|
||||
PREFIX = 0,
|
||||
HOUR = 1,
|
||||
GMT = 2,
|
||||
REGION_FORMAT = 3,
|
||||
FALLBACK_FORMAT = 4;
|
||||
|
||||
/**
|
||||
* If we meet the criteria of tr35 appendix j rule 5, return the display name, otherwise
|
||||
* return null.
|
||||
* Get the index'd tz datum for this locale. Index must be one of the
|
||||
* values PREFIX, HOUR, GMT, REGION_FORMAT, FALLBACK_FORMAT
|
||||
*/
|
||||
public static String getSingleCountryDisplayName(String tzid, ULocale locale) {
|
||||
// tr 35 appendix j rule 5 interpreted:
|
||||
// if
|
||||
// the canonical time zone id is associated with a non-empty country code string, and
|
||||
// the locale data has a translation for this country code, and
|
||||
// either
|
||||
// the country code has only one locale id associated with it, or
|
||||
// the time zone id is in the single countries list
|
||||
// then
|
||||
// return the translation of the country code
|
||||
|
||||
String cc = getSingleCountry(tzid);
|
||||
if (cc != null) {
|
||||
return getCountryDisplayNameForCode(cc, locale);
|
||||
public static String getTZLocalizationInfo(ULocale locale, int index) {
|
||||
String baseName = locale.getBaseName();
|
||||
for (int i = 0; i < TZ_LOCALIZATION_INFO.length; ++i) {
|
||||
String[] info = TZ_LOCALIZATION_INFO[i];
|
||||
String prefix = info[PREFIX];
|
||||
if (prefix == null
|
||||
|| (index < info.length
|
||||
&& info[index] != null
|
||||
&& baseName.indexOf(prefix) == 0)) {
|
||||
|
||||
return info[index];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
throw new InternalError(); // should never get here
|
||||
}
|
||||
|
||||
// temporary for icu4j 3.4
|
||||
// locale, hour, gmt, region, fallback
|
||||
private static final String[][] TZ_LOCALIZATION_INFO = {
|
||||
{ "am", "+HHmm;-HHmm" },
|
||||
{ "bg", "+HHmm;-HHmm", "\u0413\u0440\u0438\u0438\u043d\u0443\u0438\u0447{0}" },
|
||||
{ "cy", "+HHmm;-HHmm" },
|
||||
{ "el", "+HHmm;-HHmm" },
|
||||
{ "hr", "+HHmm;-HHmm" },
|
||||
{ "ja", "+HHmm;-HHmm", null, "{0}\u6642\u9593", "{0} ({1})\u00e6\u2122\u201a\u00e9\u2013\u201c" },
|
||||
{ "nn", "+HH.mm;-HH.mm" },
|
||||
{ "sk", "+HHmm;-HHmm" },
|
||||
{ "sl", "+HHmm;-HHmm" },
|
||||
{ "sr", "+HHmm;-HHmm" },
|
||||
{ "sv", "+HH.mm;-HH.mm", "GMT" },
|
||||
{ "th", "+HHmm;-HHmm" },
|
||||
{ "uk", "+HHmm;-HHmm" },
|
||||
{ "zh_Hant", "+HH:mm;-HH:mm" },
|
||||
{ "zh", "+HHmm;-HHmm" },
|
||||
{ null, "+HH:mm;-HH:mm", "GMT{0}", "{0}", "{0} ({1})" }
|
||||
};
|
||||
|
||||
private static Set getValidIDs() {
|
||||
// Construct list of time zones that are valid, according
|
||||
// to the current underlying core JDK. We have to do this
|
||||
|
|
|
@ -247,6 +247,7 @@ public class SimpleDateFormat extends DateFormat {
|
|||
*/
|
||||
private DateFormatSymbols formatData;
|
||||
|
||||
private transient ULocale locale;
|
||||
private transient boolean formatDataIsValid;
|
||||
|
||||
/**
|
||||
|
@ -458,6 +459,9 @@ public class SimpleDateFormat extends DateFormat {
|
|||
|
||||
/* Initialize calendar and numberFormat fields */
|
||||
private void initialize(ULocale loc) {
|
||||
// time zone formatting
|
||||
locale = loc;
|
||||
|
||||
// The format object must be constructed using the symbols for this zone.
|
||||
// However, the calendar should use the current default TimeZone.
|
||||
// If this is not contained in the locale zone strings, then the zone
|
||||
|
@ -809,52 +813,73 @@ public class SimpleDateFormat extends DateFormat {
|
|||
zeroPaddingNumber(buf, value, count, maxIntCount);
|
||||
break;
|
||||
case 17: // 'z' - ZONE_OFFSET
|
||||
case 24: // 'v' - TIMEZONE_GENERIC
|
||||
String tzid = cal.getTimeZone().getID();
|
||||
case 24: // 'v' - TIMEZONE_GENERIC
|
||||
{
|
||||
String res = null;
|
||||
boolean isGeneric = patternCharIndex == 24;
|
||||
|
||||
String tzid = ZoneMeta.getCanonicalID(cal.getTimeZone().getID());
|
||||
|
||||
String[] zs = null;
|
||||
if (tzid !=null && formatDataIsValid) {
|
||||
int zoneIndex = formatData.getZoneIndex(tzid);
|
||||
if (zoneIndex != -1) {
|
||||
zs = formatData.zoneStrings[zoneIndex];
|
||||
}
|
||||
}
|
||||
|
||||
if (zs != null) {
|
||||
if (isGeneric) {
|
||||
if (zs.length >= 7) { // have generic strings
|
||||
int ix = count < 4 ? 6 : 5;
|
||||
if (zs.length > 7) {
|
||||
ix += 1;
|
||||
}
|
||||
res = zs[ix];
|
||||
} else if (zs.length == 6) { // have city string
|
||||
res = ZoneMeta.displayRegion(zs[5], locale);
|
||||
}
|
||||
} else {
|
||||
int ix = count < 4 ? 2 : 1;
|
||||
if (cal.get(Calendar.DST_OFFSET) != 0) {
|
||||
ix += 2;
|
||||
}
|
||||
res = zs[ix];
|
||||
}
|
||||
}
|
||||
|
||||
if (res == null) {
|
||||
if (tzid == null || !isGeneric) {
|
||||
long offset = cal.get(Calendar.ZONE_OFFSET) +
|
||||
cal.get(Calendar.DST_OFFSET);
|
||||
res = ZoneMeta.displayGMT(offset, locale);
|
||||
} else {
|
||||
res = ZoneMeta.displayFallback(tzid, locale);
|
||||
}
|
||||
}
|
||||
|
||||
buf.append(res);
|
||||
|
||||
/*
|
||||
int zoneIndex = -1;
|
||||
if (patternCharIndex == 17 || formatDataIsValid) {
|
||||
zoneIndex = formatData.getZoneIndex(tzid);
|
||||
}
|
||||
if (zoneIndex == -1) {
|
||||
if (formatDataIsValid && patternCharIndex == 24) { // 'v'
|
||||
if (patternCharIndex == 24) { // 'v'
|
||||
// no format data, see if we have an Olson ID
|
||||
String ntzid = ZoneMeta.getCanonicalID(tzid);
|
||||
if (ntzid != null) {
|
||||
String res = ntzid.substring(ntzid.lastIndexOf('/')+1);
|
||||
for (int ix = -1;;) {
|
||||
ix = res.indexOf('_', ix+1);
|
||||
if (ix < 0) {
|
||||
break;
|
||||
}
|
||||
res = res.substring(0, ix) + " " + res.substring(ix+1);
|
||||
}
|
||||
buf.append(res);
|
||||
|
||||
// now get country code. first get the code...
|
||||
String displayCountry = ZoneMeta.getCountryDisplayNameForID
|
||||
(tzid, formatData.getLocale(ULocale.VALID_LOCALE));
|
||||
if (displayCountry != null) {
|
||||
buf.append(" (" + displayCountry + ")");
|
||||
}
|
||||
buf.append(ZoneMeta.displayFallback(ntzid, formatDataIsValid, locale));
|
||||
break; // early return
|
||||
}
|
||||
}
|
||||
|
||||
// For time zones that have no names, use strings
|
||||
// GMT+hours:minutes and GMT-hours:minutes.
|
||||
// For instance, France time zone uses GMT+01:00.
|
||||
// long form, localized GMT pattern
|
||||
value = cal.get(Calendar.ZONE_OFFSET) +
|
||||
cal.get(Calendar.DST_OFFSET);
|
||||
|
||||
if (value < 0) {
|
||||
buf.append(GMT_MINUS);
|
||||
value = -value; // suppress the '-' sign for text display.
|
||||
} else {
|
||||
buf.append(GMT_PLUS);
|
||||
}
|
||||
zeroPaddingNumber(buf, (int)(value/millisPerHour), 2, 2);
|
||||
buf.append(':');
|
||||
zeroPaddingNumber(buf, (int)((value%millisPerHour)/millisPerMinute), 2, 2);
|
||||
buf.append(ZoneMeta.displayGMT(tzid, value, locale));
|
||||
} else {
|
||||
String[] zs = formatData.zoneStrings[zoneIndex];
|
||||
|
||||
|
@ -867,22 +892,13 @@ public class SimpleDateFormat extends DateFormat {
|
|||
}
|
||||
res = zs[ix];
|
||||
} else if (zs.length == 6) { // have city string
|
||||
res = zs[5];
|
||||
res = ZoneMeta.displayRegion(zs[5], locale);
|
||||
} else {
|
||||
ULocale locale = formatData.getLocale(ULocale.VALID_LOCALE);
|
||||
String cc = ZoneMeta.getSingleCountryDisplayName(tzid, locale);
|
||||
if (cc != null) { // have single country string
|
||||
res = cc;
|
||||
res = ZoneMeta.displayRegion(cc, locale);
|
||||
} else { // use tail
|
||||
res = res.substring(res.lastIndexOf('/')+1);
|
||||
for (int ix = -1;;) {
|
||||
ix = res.indexOf('_', ix+1);
|
||||
if (ix < 0) {
|
||||
break;
|
||||
}
|
||||
res = res.substring(0, ix) + " " + res.substring(ix+1);
|
||||
}
|
||||
res += " (" + ZoneMeta.getCountryDisplayNameForID(tzid, locale) + ")";
|
||||
res = ZoneMeta.displayFallback(tzid, true, locale);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -893,11 +909,14 @@ public class SimpleDateFormat extends DateFormat {
|
|||
res = zs[ix];
|
||||
}
|
||||
buf.append(res);
|
||||
}
|
||||
break;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
} break;
|
||||
case 23: // 'Z' - TIMEZONE_RFC
|
||||
{
|
||||
if (count < 5) {
|
||||
if (count < 4) {
|
||||
// 'short' (standard Java) form, must use ASCII digits
|
||||
char sign = '+';
|
||||
value = (cal.get(Calendar.ZONE_OFFSET) +
|
||||
|
@ -909,21 +928,12 @@ public class SimpleDateFormat extends DateFormat {
|
|||
value = (value / 3) * 5 + (value % 60); // minutes => KKmm
|
||||
buf.append(sign);
|
||||
buf.append(new DecimalFormat("0000").format(value));
|
||||
} else { // dlf use 5 since existing tests use 4
|
||||
} else {
|
||||
// long form, localized GMT pattern
|
||||
// not in 3.4 locale data, need to add, so use same default as for general time zone names
|
||||
value = cal.get(Calendar.ZONE_OFFSET) +
|
||||
cal.get(Calendar.DST_OFFSET);
|
||||
|
||||
if (value < 0) {
|
||||
buf.append(GMT_MINUS);
|
||||
value = -value; // suppress the '-' sign for text display.
|
||||
} else {
|
||||
buf.append(GMT_PLUS);
|
||||
}
|
||||
zeroPaddingNumber(buf, (int)(value/millisPerHour), 2, 2);
|
||||
buf.append(':');
|
||||
zeroPaddingNumber(buf, (int)((value%millisPerHour)/millisPerMinute), 2, 2);
|
||||
buf.append(ZoneMeta.displayGMT(value, locale));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue