Spring Boot 使用 Thymeleaf 处理 DateTime 字段

Ana*_*ane 5 java datetime-format thymeleaf spring-boot

我正在使用 Spring Boot v2.0.3 和 Thymeleaf。我在保留或编辑声明如下的日期字段时遇到问题:

\n\n
@Temporal(TemporalType.TIMESTAMP)\n@DateTimeFormat(pattern = "yyyy-MM-dd\'T\'hh:mm:ss")\n@Column(name = "date_agenda", nullable = false)\n@Basic(fetch = FetchType.EAGER)\n@NotNull(message = "la date doit \xc3\xaatre renseign\xc3\xa9e")\n@XmlElement\nDate dateAgenda;\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的控制器:

\n\n
// Save\n@RequestMapping(value = "/agendaEdit", method = RequestMethod.POST)\npublic String agendaEdit(@Valid Agenda agenda, BindingResult bindingResult, Model model) {\n    if (bindingResult.hasErrors()) {\n        return "/agenda/agendaEdit";\n    } else {\n        agendaService.saveAgenda(agenda);\n        model.addAttribute("agenda", agendaService.getAllAgenda());\n        return "/agenda/agendaList";\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

和我的模板:

\n\n
<div class="form-group"\n     th:classappend="${#fields.hasErrors(\'agenda.dateAgenda\')} ? \'has-error\'">\n    <div class="col-md-3">\n        <label for="content">Date</label>\n        <input type="datetime-local" class="form-control" id="content" th:field="*{agenda.dateAgenda}"/>\n        <p th:if="${#fields.hasErrors(\'agenda.dateAgenda\')}"\n           th:errors="*{agenda.dateAgenda}" class="help-block">Name Error</p>\n    </div>\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我收到以下错误:

\n\n

在此输入图像描述

\n

Sal*_*ner 7

您的问题在于 的@DateTimeFormat模式:"yyyy-MM-dd'T'hh:mm:ss"您正在解析秒,这不是日期时间本地输入的一部分。

使用"yyyy-MM-dd'T'hh:mm"它,它将按预期工作。