docs: public Object convert(Class type, Object value) {
          if (value == null) {
              if (useDefault) {
                  return (defaultValue);
              } else {
                  throw new ConversionException("No value specified");
              }
          }
  
          if (value instanceof java.sql.Date && java.sql.Date.class.equals(type)) {
              return value;
          } else if (value instanceof java.sql.Time && java.sql.Time.class.equals(type)) {
              return value;
          } else if (value instanceof java.sql.Timestamp && java.sql.Timestamp.class.equals(type)) {
              return value;
          } else {
              try {
                  if (java.sql.Date.class.equals(type)) {
                      return new java.sql.Date(convertTimestamp2TimeMillis(value.toString()));
                  } else if (java.sql.Time.class.equals(type)) {
                      return new java.sql.Time(convertTimestamp2TimeMillis(value.toString()));
                  } else if (java.sql.Timestamp.class.equals(type)) {
                      return new java.sql.Timestamp(convertTimestamp2TimeMillis(value.toString()));
                  } else {
                      return new Timestamp(convertTimestamp2TimeMillis(value.toString()));
                  }
              } catch (Exception e) {
                  throw new ConversionException("Value format invalid: " + e.getMessage(), e);
              }
          }
  
      }