Java 如何在SpringBootAPI请求中强制使用DateTime格式?
我有一节这样的课。我想强制要求,只有当请求中的日期采用有效的ISO日期时间格式(如: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
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;