【问题标题】:Validate date (ISO-8601) in request parameters (spring-boot)在请求参数(spring-boot)中验证日期(ISO-8601)
【发布时间】:2018-05-07 14:02:28
【问题描述】:

在我的控制器中,我有:

@RequestMapping(path = "/add", method = POST, produces = "application/json; charset=UTF-8")
public ResponseEntity<Object> saveData(@Valid @RequestBody ReceivedDTO dto)

ReceivedDTO我有一个字段:

@JsonProperty("end_date")
@NotNull
private Date endDate;

我需要endDate 加入ISO-8601(例如2007-04-05T14:30Z)。

是否可以在DTO 级别上验证endDate

【问题讨论】:

  • 设置你需要的模式@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
  • @Mikhail 我知道@JsonFormat,但我无法使用它。你的提议给了我JSON parse error: Can not deserialize value of type java.util.Date from String \"2018-05-07T14:30Z\": expected format \"yyyy-MM-dd HH:mm\"
  • 你也可以编写自己的验证器
  • 在您的配置文件中:spring.jackson.date-format=com.fasterxml.jackson.databind.util.ISO8601DateFormat

标签: java date spring-boot iso8601


【解决方案1】:

我想通了。 我需要做的就是添加@JsonFormat(pattern="yyyy-MM-dd'T'HH:mmX")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 2018-03-23
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 2018-06-26
    相关资源
    最近更新 更多