docs: public static Interval extractDateInterval(String eventDate) {
      	Interval result = null;
      	DateTimeParser[] parsers = { 
      			DateTimeFormat.forPattern("yyyy-MM").getParser(),
      			DateTimeFormat.forPattern("yyyy").getParser(),
      			ISODateTimeFormat.dateOptionalTimeParser().getParser() 
      	};
      	DateTimeFormatter formatter = new DateTimeFormatterBuilder().append( null, parsers ).toFormatter();
      	if (eventDate!=null && eventDate.contains("/") && isRange(eventDate)) {
      		String[] dateBits = eventDate.split("/");
      		try { 
      			// must be at least a 4 digit year.
      			if (dateBits[0].length()>3 && dateBits[1].length()>3) { 
      				DateMidnight startDate = DateMidnight.parse(dateBits[0],formatter);
      				DateMidnight endDate = DateMidnight.parse(dateBits[1],formatter);
      				if (dateBits[1].length()==4) { 
      	                  result = new Interval(startDate,endDate.plusMonths(12).minusDays(1));
      	               } else if (dateBits[1].length()==7) { 
      	                  result = new Interval(startDate,endDate.plusMonths(1).minusDays(1));
      	               } else { 
      				      result = new Interval(startDate, endDate);
      	               }
      			}
      		} catch (Exception e) { 
      			// not a date range
                 logger.error(e.getMessage());
      		}
      	} else {
      		try { 
                 DateMidnight startDate = DateMidnight.parse(eventDate, formatter);
                 logger.debug(eventDate);
                 logger.debug(startDate);
                 if (eventDate.length()==4) { 
                    result = new Interval(startDate,startDate.plusMonths(12).minusDays(1));
                 } else if (eventDate.length()==7) { 
                    result = new Interval(startDate,startDate.plusMonths(1).minusDays(1));
                 } else { 
                    result = new Interval(startDate,startDate.plusDays(1));
                 }
      		} catch (IllegalFieldValueException ex) {
      			// can parse as a date but some token has an out of range value
      			logger.debug(ex);
      		} catch (Exception e) { 
      			// not a date
                 logger.error(e.getMessage(),e);
      		}
      	}
      	return result;
      }