code: public static String getCanonicalID(String id, boolean[] isSystemID) {
          String canonicalID = null;
          boolean systemTzid = false;
          if (id != null && id.length() != 0) {
              if (id.equals(TimeZone.UNKNOWN_ZONE_ID)) {
                  // special case - Etc/Unknown is a canonical ID, but not system ID
                  canonicalID = TimeZone.UNKNOWN_ZONE_ID;
                  systemTzid = false;
              } else {
                  canonicalID = ZoneMeta.getCanonicalCLDRID(id);
                  if (canonicalID != null) {
                      systemTzid = true;
                  } else {
                      canonicalID = ZoneMeta.getCustomID(id);
                  }
              }
          }
          if (isSystemID != null) {
              isSystemID[0] = systemTzid;
          }
          return canonicalID;
      }
docs: <strong>[icu]</strong> Returns the canonical system time zone ID or the normalized
  custom time zone ID for the given time zone ID.
  @param id The input time zone ID to be canonicalized.
  @param isSystemID When non-null boolean array is specified and
  the given ID is a known system time zone ID, true is set to <code>isSystemID[0]</code>
  @return The canonical system time zone ID or the custom time zone ID
  in normalized format for the given time zone ID.  When the given time zone ID
  is neither a known system time zone ID nor a valid custom time zone ID,
  null is returned.