在请求正文中验证日期

时间:2019-10-15 03:27:21

标签: java json spring

我有一个带有日期字段的请求正文,我想验证日期的输入,如果格式错误,则返回错误代码400 BadRequest。

如果我使用JsonFormat,则会引发错误500:

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
private Date dateAt;

所以我将字段更改为String,然后使用getDate()

进行解析并在各处抛出BadRequest格式

我对这种方法不是很满意。还有其他优雅的方法可以实现此验证吗?


我想我将接受JSON格式化程序中的错误500,并跳过我的自定义异常。

1 个答案:

答案 0 :(得分:2)

从Java 8开始,您应该避免使用Date。 Java 8带来了全新的date and time API

根据您的问题,将Date替换为LocalDate,其格式应为yyyy-MM-dd

Jackson的module支持新的日期和时间API,如果日期格式不正确,将引发异常。进行序列化时,您要确保禁用WRITE_DATES_AS_TIMESTAMPS功能,以便按照ISO 8601格式写入值。

相关问题