code: 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;
      }
docs: 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.