将javascript日期转换为java.time.LocalDate

将javascript日期转换为java.time.LocalDate,javascript,json,deserialization,Javascript,Json,Deserialization,我试图用Java将json数据发布到控制器 这是我的控制器: @ResponseBody @RequestMapping(value="/{schoolId}", method=RequestMethod.POST) public ClassGroupDTO addClassGroup(@RequestBody ClassGroupDTO classgroup, @PathVariable Integer schoolId) { return partyServi

我试图用Java将json数据发布到控制器

这是我的控制器:

@ResponseBody
    @RequestMapping(value="/{schoolId}", method=RequestMethod.POST)
    public ClassGroupDTO addClassGroup(@RequestBody ClassGroupDTO classgroup, @PathVariable Integer schoolId) {
        return partyService.addClassGroup(classgroup, schoolId);
    }
这是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;
...
}
我用的是杰克逊2.4.3

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

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


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

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

var dateString = new Date().toISOString().substring(0,10);


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

因为您使用的是矩,所以有一种简单的方法可以实现这一点:

let startDate = moment().toISOString();

这将转换为有效的LocalDateTime格式

,因为日期ISO格式如下:“2015-10-14T09:39:49.942Z”,我将使用拆分为:new date().toISOString().split(“T”)[0]
var dateString = new Date().toISOString().split("T")[0];
let startDate = moment().toISOString();