code: private static String parseShortZoneID(String text, ParsePosition pos) {
          String resolvedID = null;
          if (SHORT_ZONE_ID_TRIE == null) {
              synchronized (TimeZoneFormat.class) {
                  if (SHORT_ZONE_ID_TRIE == null) {
                      // Build short zone ID trie
                      TextTrieMap<String> trie = new TextTrieMap<String>(true);
                      Set<String> canonicalIDs = TimeZone.getAvailableIDs(SystemTimeZoneType.CANONICAL, null, null);
                      for (String id : canonicalIDs) {
                          String shortID = ZoneMeta.getShortID(id);
                          if (shortID != null) {
                              trie.put(shortID, id);
                          }
                      }
                      // Canonical list does not contain Etc/Unknown
                      trie.put(UNKNOWN_SHORT_ZONE_ID, UNKNOWN_ZONE_ID);
                      SHORT_ZONE_ID_TRIE = trie;
                  }
              }
          }
  
          int[] matchLen = new int[] {0};
          Iterator<String> itr = SHORT_ZONE_ID_TRIE.get(text, pos.getIndex(), matchLen);
          if (itr != null) {
              resolvedID = itr.next();
              pos.setIndex(pos.getIndex() + matchLen[0]);
          } else {
              pos.setErrorIndex(pos.getIndex());
          }
  
          return resolvedID;
      }
docs: Parse a short zone ID.
  @param text the text contains a time zone ID string at the position.
  @param pos the position.
  @return The zone ID for the parsed short zone ID.