无法在Spring控制器中解析本地日期时间

在我的Spring Boot应用程序中,我需要处理带有日期时间字段的表单并将其转换为LocalDateTimeJava。


我指定了pattern "YYYY-MM-dd HH:mm",当我使用输入值提交表单时,它无法转换1990-01-01 10:10。


这是表单对象:


public class UserForm {

    @NotNull

    @DateTimeFormat(pattern = "YYYY-MM-dd HH:mm")

    private LocalDateTime dateTime;

    // getters, setters

}

控制器:


@RequestMapping("/users")

@Controller

public class UserController {

    @GetMapping("")

    public String userForm(UserForm userForm) {

        return "/users/form";

    }


    @PostMapping("")

    public String postForm(@Valid UserForm userForm, BindingResult bindingResult) {

        System.out.println(userForm + " " + bindingResult);

        return "/users/form";

    }

}

和胸腺嘧啶的形式:


<form th:object="${userForm}" th:action="@{/users}" method="post">

    <span th:each="err: ${#fields.errors('dateTime')}" th:text="${err}" style="background-color:red;color:white;"/>

    <input type="text" th:field="*{dateTime}"/>

    <input type="submit">

</form>

这个例子有什么问题?我应该如何修复它以使其正确解析String为LocalDateTime?


我也在这里提交了示例应用程序。


更新:


在“转换失败”下,我的意思是我得到了例外:


org.springframework.core.convert.ConversionFailedException:无法从类型[java.lang.String]转换为类型[@ javax.validation.constraints.NotNull @ org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime]价值1990-01-01 10:10


使用小写字母可以yyyy解决此问题。谢谢。


catspeake
浏览 157回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java