code: @Override
    public Object parse(String value) throws ParseException
    {
      if(value == null || value.isEmpty()) {
        return null;
      }
      dateFormat = createDateFormat(locale);
      dateFormat.setTimeZone(timeZone);
      return dateFormat.parse(value);
    }
docs: Parse date value and return {@link Date} instance. Given <code>value</code> should encode a date instance
  accordingly this formatter locale. Returns null if <code>value</code> argument is null or empty.
  
  @param value date localized value.
  @return {@link Date} instance or null if <code>value</code> argument is null or empty.
  @throws ParseException if <code>value</code> argument is not a valid date accordingly this formatter locale.