private static boolean isGMTish(String name){
  if (name.length() < 3) {
    return false;
  }
  char c1=name.charAt(0);
  char c2=name.charAt(1);
  char c3=name.charAt(2);
  if (!((c1 == 'G' || c1 == 'g') && (c2 == 'M' || c2 == 'm') && (c3 == 'T' || c3 == 't')) && !((c1 == 'U' || c1 == 'u') && (c2 == 'T' || c2 == 't') && (c3 == 'C' || c3 == 'c')) && !((c1 == 'U' || c1 == 'u') && (c2 == 'T' || c2 == 't') && (c3 == '1'))) {
    return false;
  }
  if (name.length() == 3) {
    return true;
  }
  String offset=name.substring(3);
  if (offset.startsWith("+")) {
    return offset.equals("+0") || offset.equals("+00") || offset.equals("+00:00");
  }
 else {
    return offset.equals("-0") || offset.equals("-00") || offset.equals("-00:00");
  }
}

private static boolean isGMTish ( String name ) { if ( name . length ( ) < 3 ) { return false ; } char c1 = name . charAt ( 0 ) ; char c2 = name . charAt ( 1 ) ; char c3 = name . charAt ( 2 ) ; if ( ! ( ( c1 == 'G' || c1 == 'g' ) && ( c2 == 'M' || c2 == 'm' ) && ( c3 == 'T' || c3 == 't' ) ) && ! ( ( c1 == 'U' || c1 == 'u' ) && ( c2 == 'T' || c2 == 't' ) && ( c3 == 'C' || c3 == 'c' ) ) && ! ( ( c1 == 'U' || c1 == 'u' ) && ( c2 == 'T' || c2 == 't' ) && ( c3 == '1' ) ) ) { return false ; } if ( name . length ( ) == 3 ) { return true ; } String offset = name . substring ( 3 ) ; if ( offset . startsWith ( "+" ) ) { return offset . equals ( "+0" ) || offset . equals ( "+00" ) || offset . equals ( "+00:00" ) ; } else { return offset . equals ( "-0" ) || offset . equals ( "-00" ) || offset . equals ( "-00:00" ) ; } }
tells if a offset or time zone is gmt . gmt is a fuzzy term , it used to referred both to utc and ut1 .
