【问题标题】:How to enforce DateTime format in Spring Boot API Request?如何在 Spring Boot API 请求中强制执行 DateTime 格式?
【发布时间】:2021-02-01 08:16:50
【问题描述】:

我有这样的课。我想强制只有当请求中的日期采用有效的 ISO 日期时间格式时,两个 Date 字段才应接受请求,例如: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 格式日期,我想抛出一个错误的请求。

【问题讨论】:

    标签: java json spring-boot datetime


    【解决方案1】:

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

    例如:

    @JsonFormat(pattern = "yyyy-MM-dd")
    

    【讨论】:

      【解决方案2】:

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

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

      如果您想接受多种模式,您可以在此链接上获得一些实现:Configure Jackson to parse multiple date formats

      【讨论】:

        猜你喜欢
        • 2018-11-29
        • 1970-01-01
        • 2019-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-09
        • 1970-01-01
        相关资源
        最近更新 更多