Java 如何在SpringBootAPI请求中强制使用DateTime格式?

Java 如何在SpringBootAPI请求中强制使用DateTime格式?,java,json,spring-boot,datetime,Java,Json,Spring Boot,Datetime,我有一节这样的课。我想强制要求,只有当请求中的日期采用有效的ISO日期时间格式(如:2021-01-19T12:20:35+00:00 @Data @AllArgsConstructor @NoArgsConstructor @Builder @Validated public class EDDDetail { @NotBlank private String versionId; @NotNull private Date minTime; @NotNull p

我有一节这样的课。我想强制要求,只有当请求中的日期采用有效的ISO日期时间格式(如:
2021-01-19T12:20:35+00:00

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Validated
public class EDDDetail {

  @NotBlank
  private String versionId;

  @NotNull
  private Date minTime;

  @NotNull
  private Date maxTime;
}
如何做到这一点?目前,它接受长格式的日期(纪元时间[例如:1611058835000])和其他有效日期,如
22-02-2021
等。
如果请求中的日期格式不是ISO格式的日期,我想抛出一个错误的请求。

您可以使用带有提供模式的@JsonFormat注释来格式化日期

例如:


您可以使用
@JsonFormat
注释定义模式:

  @NotNull
  @JsonFormat(pattern="dd-MM-yyyy")
  private Date minTime;

  @NotNull
  @JsonFormat(pattern="dd-MM-yyyy")
  private Date maxTime;
如果您想要接受多个模式,您可以在此链接上获得一些实现:

  @NotNull
  @JsonFormat(pattern="dd-MM-yyyy")
  private Date minTime;

  @NotNull
  @JsonFormat(pattern="dd-MM-yyyy")
  private Date maxTime;