code: public static Date fromISODateTime(final String val) throws BadDateException {
      try {
        synchronized (isoDateTimeFormat) {
          try {
            isoDateTimeFormat.setTimeZone(Timezones.getDefaultTz());
          } catch (TimezonesException tze) {
            throw new RuntimeException(tze);
          }
          return isoDateTimeFormat.parse(val);
        }
      } catch (Throwable t) {
        throw new BadDateException();
      }
    }
docs: Get Date from "yyyyMMddThhmmss"
  
  @param val String "yyyyMMddThhmmss"
  @return Date
  @throws BadDateException on format error