java - ResolverStyle.STRICT 在 `@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)` 中不起作用

标签 java spring validation date datetime

我正在使用:

@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
@JsonFormat( pattern = "MM-dd-yyyy" )
private LocalDate start;

但它接受 02-30-2019 并自动转换为 02-28-2019。但我想限制那个日期。

我还用过:

@DateTimeFormat(iso = java.time.format.DateTimeFormatter.ISO_DATE)
@JsonFormat( pattern = "MM-dd-yyyy" )
private LocalDate start;

但它会给出编译时错误:Attribute value must be constant

在这里安装:

我有同样的问题,也用 u 代替 y 但没有帮助:

@FutureOrPresent
@DateTimeFormat( iso = DateTimeFormat.ISO.DATE,pattern = "MM-dd-uuuu")
@JsonFormat( pattern = "MM-dd-uuuu" )
private LocalDate start;

我想在解析时进行限制。它接受 02-31-2019 并自动转换为 02-28-2019。引用:https://stackoverflow.com/a/41104034/6097074

现在 2018 年 9 月 8 日

如果我使用: private LocalDate start;//不使用 DateTimeFormat 和 JsonFormat 注解

如果我使用:yyyy-MM-dd 在 json 中格式化日期,即 2014-01-01。 但我需要解析为 MM-dd-yyyy

请帮助解决这个问题, 谢谢。

最佳答案

我得到了你的问题的解决方案:

删除下划线

@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
@JsonFormat( pattern = "MM-dd-yyyy" )

只需使用:

private LocalDate start;

并在 yyyy-MM-ddyyyy-MM-ddTHH:mm:ss 中发送日期( Spring 使用 ResolverStyle.Strict 进行日期解析的默认日期格式)日期格式。

关于java - ResolverStyle.STRICT 在 `@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)` 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52129200/

相关文章:

java - 对于 Java 赋值 "x=y",Java 编译器是否要求 x 声明的类型是 y 的父类(super class)型(包括相同类型)?

java - Eclipse,链接源文件夹

java - 基于文本的游戏 Action

java - T-SQL 存储过程不会通过 COUNT(*) 在空 SELECT 结果上返回零

azure - 验证内容返回 json 内容类型 Azure Api 管理策略的错误

java - 使用注释处理延迟绑定(bind)到 Dagger2 Graph

java - 如何在 Spring amqp 运行时添加/删除消费者?

java - Spring Security 中 Role 和 GrantedAuthority 的区别

android-saripaar v2 messageResId 必须是常量

validation - Identity Server 3 访问 token 验证端点失败,受众验证失败