code: private static synchronized Set<String> getSystemZIDs() {
          Set<String> systemZones = null;
          if (REF_SYSTEM_ZONES != null) {
              systemZones = REF_SYSTEM_ZONES.get();
          }
          if (systemZones == null) {
              Set<String> systemIDs = new TreeSet<String>();
              String[] allIDs = getZoneIDs();
              for (String id : allIDs) {
                  // exclude Etc/Unknown
                  if (id.equals(TimeZone.UNKNOWN_ZONE_ID)) {
                      continue;
                  }
                  systemIDs.add(id);
              }
              systemZones = Collections.unmodifiableSet(systemIDs);
              REF_SYSTEM_ZONES = new SoftReference<Set<String>>(systemZones);
          }
          return systemZones;
      }
docs: Returns an immutable set of system time zone IDs.
  Etc/Unknown is excluded.
  @return An immutable set of system time zone IDs.