我有一个带有日期字段的请求正文,我想验证日期的输入,如果格式错误,则返回错误代码400 BadRequest。
如果我使用JsonFormat
,则会引发错误500:
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
private Date dateAt;
所以我将字段更改为String
,然后使用getDate()
我对这种方法不是很满意。还有其他优雅的方法可以实现此验证吗?
我想我将接受JSON格式化程序中的错误500,并跳过我的自定义异常。
答案 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格式写入值。