javascript日期到java.time.LocalDate

Bak*_*Gat 7 javascript json deserialization

我正在尝试将json数据发布到Java中的Controller.

这是我的控制器:

@ResponseBody
    @RequestMapping(value="/{schoolId}", method=RequestMethod.POST)
    public ClassGroupDTO addClassGroup(@RequestBody ClassGroupDTO classgroup, @PathVariable Integer schoolId) {
        return partyService.addClassGroup(classgroup, schoolId);
    }
Run Code Online (Sandbox Code Playgroud)

这就是ClassGroupDTO

    public class ClassGroupDTO extends PartyDTO {
    private PartyDTO titular;
    private SiteDTO site;
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate startDate;
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate endDate;
...
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Jackson 2.4.3.

当给出字段startDate或endDate时,我无法发布数据.我尝试了几种格式发布.(我正在使用moment.js)

data.startDate = moment().toDate();
data.startDate = moment().toJSON();
data.startDate = moment().format("YYYY/MM/DD");
Run Code Online (Sandbox Code Playgroud)

每次收到错误请求错误.当我省略startDate或endDate时,会发布数据并触发控制器.

如何将javascript日期反序列化为java.time.LocalDate?

jbi*_*man 5

我遇到了同样的问题,使用以下方法解决了问题:

var dateString = new Date().toISOString().substring(0,10);
Run Code Online (Sandbox Code Playgroud)

要么

var dateString = new Date().toISOString().split("T")[0];
Run Code Online (Sandbox Code Playgroud)

转换为ISO字符串(“ 2015-10-14T09:39:49.942Z”),然后仅保留前十个字符,即日期。

  • 由于日期 ISO 格式如下:“2015-10-14T09:39:49.942Z”,我将使用拆分为: new Date().toISOString().split("T")[0] (2认同)