public void appendTo(StringBuffer buffer, Calendar calendar) { TimeZone timeZone; if ((timeZone = mTimeZone) != null) { if (timeZone.useDaylightTime() && calendar.get(Calendar.DST_OFFSET) != 0) { buffer.append(mDaylight); } else { buffer.append(mStandard); } } else { timeZone = calendar.getTimeZone(); if (timeZone.useDaylightTime() && calendar.get(Calendar.DST_OFFSET) != 0) { buffer.append(getTimeZoneDisplay(timeZone, true, mStyle, mLocale)); } else { buffer.append(getTimeZoneDisplay(timeZone, false, mStyle, mLocale)); } } }
void test1() { Locale[] available = Locale.getAvailableLocales(); List<Locale> jreimplloc = Arrays.asList( LocaleProviderAdapter.forJRE().getTimeZoneNameProvider().getAvailableLocales()); List<Locale> providerLocales = Arrays.asList(tznp.getAvailableLocales()); String[] ids = TimeZone.getAvailableIDs(); for (Locale target : available) { // pure JRE implementation OpenListResourceBundle rb = ((ResourceBundleBasedAdapter) LocaleProviderAdapter.forJRE()) .getLocaleData() .getTimeZoneNames(target); boolean jreSupportsTarget = jreimplloc.contains(target); for (String id : ids) { // the time zone TimeZone tz = TimeZone.getTimeZone(id); // JRE string array for the id String[] jrearray = null; if (jreSupportsTarget) { try { jrearray = rb.getStringArray(id); } catch (MissingResourceException mre) { } } for (int i = 1; i <= (tz.useDaylightTime() ? 4 : 2); i++) { // the localized name String name = tz.getDisplayName(i >= 3, i % 2, target); // provider's name (if any) String providersname = null; if (providerLocales.contains(target)) { providersname = tznp.getDisplayName(id, i >= 3, i % 2, target); } // JRE's name String jresname = null; if (jrearray != null) { jresname = jrearray[i]; } checkValidity( target, jresname, providersname, name, jreSupportsTarget && jresname != null); } } } }