选项1
将您的模式更改为此:
Pattern(regexp = "([0-2][0-9]|3[0-1])/(0[1-9]|1[0-2])/[0-9]{4}")但是请记住,这种验证不会检查2月是否少于28/29天以及其他日期限制。
选项2
创建您的自定义约束验证器
注解
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })@Retention(RUNTIME)@Constraint(validatedBy = CheckDatevalidator.class)@documentedpublic @interface CheckDateFormat { String message() default "{message.key}"; Class<?>[] groups() default { }; Class<? extends Payload>[] payload() default { }; String pattern();}验证器类
拥有Date对象,您可以进行任何其他想要的验证(例如过去的拒绝日期)
public class CheckDatevalidator implements ConstraintValidator<CheckDateFormat, String> { private String pattern; @Override public void initialize(CheckDateFormat constraintAnnotation) { this.pattern = constraintAnnotation.pattern(); } @Override public boolean isValid(String object, ConstraintValidatorContext constraintContext) { if ( object == null ) { return true; } try { Date date = new SimpleDateFormat(pattern).parse(object); return true; } catch (Exception e) { e.printStackTrace(); return false; } }}用
@CheckDateFormat(pattern = "ddMMyyyy")private String value;



