BakGat BakGat - 9 days ago 6
Javascript Question

javascript date to java.time.LocalDate

I'm trying to post json data to a Controller in Java.

This is my controller:

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


This it the 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;
...
}


I'm using Jackson 2.4.3.

I'm not able to post data when the field startDate or endDate is given.
I've tried several formats to post. (I'm using moment.js)

data.startDate = moment().toDate();
data.startDate = moment().toJSON();
data.startDate = moment().format("YYYY/MM/DD");


Everytime I receive a Bad Request error.
When I leave out startDate or endDate the data is posted and the controller is triggered.

How to deserialize javascript date to java.time.LocalDate?

Answer

I got the same problem, solved it using:

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

or

var dateString = new Date().toISOString().split("T")[0];

Convert to ISO string ("2015-10-14T09:39:49.942Z"), then keep only first ten characters ie, the date.