code: public static DateTimeZone forTimeZone(TimeZone zone) {
          if (zone == null) {
              return getDefault();
          }
          final String id = zone.getID();
          if (id == null) {
              throw new IllegalArgumentException("The TimeZone id must not be null");
          }
          if (id.equals("UTC")) {
              return DateTimeZone.UTC;
          }
  
          // Convert from old alias before consulting provider since they may differ.
          DateTimeZone dtz = null;
          String convId = getConvertedId(id);
          Provider provider = getProvider();
          if (convId != null) {
              dtz = provider.getZone(convId);
          }
          if (dtz == null) {
              dtz = provider.getZone(id);
          }
          if (dtz != null) {
              return dtz;
          }
  
          // Support GMT+/-hh:mm formats
          if (convId == null) {
              convId = id;
              if (convId.startsWith("GMT+") || convId.startsWith("GMT-")) {
                  convId = convId.substring(3);
                  if (convId.length() > 2) {
                      char firstDigit = convId.charAt(1);
                      if (firstDigit > '9' && Character.isDigit(firstDigit)) {
                          convId = convertToAsciiNumber(convId);
                      }
                  }
                  int offset = parseOffset(convId);
                  if (offset == 0L) {
                      return DateTimeZone.UTC;
                  } else {
                      convId = printOffset(offset);
                      return fixedOffsetZone(convId, offset);
                  }
              }
          }
          throw new IllegalArgumentException("The datetime zone id '" + id + "' is not recognised");
      }
docs: Gets a time zone instance for a JDK TimeZone.
  <p>
  DateTimeZone only accepts a subset of the IDs from TimeZone. The
  excluded IDs are the short three letter form (except UTC). This
  method will attempt to convert between time zones created using the
  short IDs and the full version.
  <p>
  This method is not designed to parse time zones with rules created by
  applications using <code>SimpleTimeZone</code> directly.
  
  @param zone  the zone to convert, null means default
  @return the DateTimeZone object for the zone
  @throws IllegalArgumentException if the zone is not recognised