code: public static TimeZone getTimeZone(final String id) {
          final TimeZone tz = getGmtTimeZone(id);
          if (tz != null) {
              return tz;
          }
          return TimeZone.getTimeZone(id);
      }
docs: Gets a TimeZone, looking first for GMT custom ids, then falling back to Olson ids.
  A GMT custom id can be 'Z', or 'UTC', or has an optional prefix of GMT,
  followed by sign, hours digit(s), optional colon(':'), and optional minutes digits.
  i.e. <em>[GMT] (+|-) Hours [[:] Minutes]</em>
  
  @param id A GMT custom id (or Olson id
  @return A timezone