Java 在请求正文中验证日期

Java 在请求正文中验证日期,java,json,spring,Java,Json,Spring,我有一个请求主体havedate字段,我想验证日期的输入,如果格式错误,则返回错误代码400badRequest 如果使用JsonFormat,则会抛出错误500: @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd") private Date dateAt; 因此,我将字段更改为String,然后使用getDate() 我对这种方法并不十分满意。是否有其他优雅的方法来实现此验证 我想我会接受JSON格式化程序中的错

我有一个请求主体havedate字段,我想验证日期的输入,如果格式错误,则返回错误代码400badRequest

如果使用
JsonFormat
,则会抛出错误500:

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
private Date dateAt;
因此,我将字段更改为
String
,然后使用
getDate()

我对这种方法并不十分满意。是否有其他优雅的方法来实现此验证



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

因为Java 8,所以应该避免使用。Java8带来了一个全新的应用程序

根据您的问题,合适的替代品是,预计格式为
yyyy-MM-dd


Jackson有一个支持新日期和时间API的应用程序,如果日期格式不正确,将引发异常。序列化时,您希望确保该功能已禁用,因此将根据格式写入值。

由于Java 8,您应该避免使用。Java8带来了一个全新的应用程序

根据您的问题,合适的替代品是,预计格式为
yyyy-MM-dd


Jackson有一个支持新日期和时间API的应用程序,如果日期格式不正确,将引发异常。序列化时,您希望确保禁用该功能,以便根据格式写入值。

如何实现控制器进行验证?您也可以发布代码片段吗?我不在控制器中验证,但在服务层中验证。我尝试将其放入
try catch
块,然后在
parse()
无法实现时抛出new
BadRequestException
。无论如何,我想我会跳过这个,接受JSON在日期格式不正确时返回500错误的方式。谢谢。您如何实现控制器以进行验证?您也可以发布代码片段吗?我不在控制器中验证,但在服务层中验证。我尝试将其放入
try catch
块,然后在
parse()
无法实现时抛出new
BadRequestException
。无论如何,我想我会跳过这个,接受JSON在日期格式不正确时返回500错误的方式。谢谢。我敢打赌你是什么意思?@大牛:是的!这就是我的意思:)我敢打赌你的意思是?@daniu是的!这就是我的意思:)