public String[][] getZoneStrings() {
        if (zoneStrings != null) {
            return duplicate(zoneStrings);
        }

        String[] tzIDs = TimeZone.getAvailableIDs();
        TimeZoneNames tznames = TimeZoneNames.getInstance(validLocale);
        tznames.loadAllDisplayNames();
        NameType types[] = {
            NameType.LONG_STANDARD, NameType.SHORT_STANDARD,
            NameType.LONG_DAYLIGHT, NameType.SHORT_DAYLIGHT
        };
        long now = System.currentTimeMillis();
        String[][] array = new String[tzIDs.length][5];
        for (int i = 0; i < tzIDs.length; i++) {
            String canonicalID = TimeZone.getCanonicalID(tzIDs[i]);
            if (canonicalID == null) {
                canonicalID = tzIDs[i];
            }

            array[i][0] = tzIDs[i];
            tznames.getDisplayNames(canonicalID, types, now, array[i], 1);
        }

        zoneStrings = array;
        return zoneStrings;
    }
public String [ ] [ ] getZoneStrings ( ) { if ( zoneStrings != null ) { return duplicate ( zoneStrings ) ; } String [ ] tzIDs = TimeZone . getAvailableIDs ( ) ; TimeZoneNames tznames = TimeZoneNames . getInstance ( validLocale ) ; tznames . loadAllDisplayNames ( ) ; NameType types [ ] = { NameType . LONG_STANDARD , NameType . SHORT_STANDARD , NameType . LONG_DAYLIGHT , NameType . SHORT_DAYLIGHT } ; long now = System . currentTimeMillis ( ) ; String [ ] [ ] array = new String [ tzIDs . length ] [ 5 ] ; for ( int i = 0 ; i < tzIDs . length ; i ++ ) { String canonicalID = TimeZone . getCanonicalID ( tzIDs [ i ] ) ; if ( canonicalID == null ) { canonicalID = tzIDs [ i ] ; } array [ i ] [ 0 ] = tzIDs [ i ] ; tznames . getDisplayNames ( canonicalID , types , now , array [ i ] , 1 ) ; } zoneStrings = array ; return zoneStrings ; }
Returns time zone strings.
<p>
The array returned by this API is a two dimensional String array and
each row contains at least following strings:
<ul>
<li>ZoneStrings[n][0] - System time zone ID
<li>ZoneStrings[n][1] - Long standard time display name
<li>ZoneStrings[n][2] - Short standard time display name
<li>ZoneStrings[n][3] - Long daylight saving time display name
<li>ZoneStrings[n][4] - Short daylight saving time display name
</ul>
When a localized display name is not available, the corresponding
array element will be <code>null</code>.
<p>
<b>Note</b>: ICU implements the time zone display name formatting algorithm
specified by <a href="http://www.unicode.org/reports/tr35/">UTS#35 Unicode
Locale Data Markup Language(LDML)</a>. The algorithm supports historic
display name changes and various different types of names not available in
{@link java.text.DateFormatSymbols#getZoneStrings()}. For accessing the full
set of time zone string data used by ICU implementation, you should use
{@link TimeZoneNames} APIs instead.

@return the time zone strings.