Вы пропустили @RequestBody
в контроллере, поэтому значение считается QueryParam
. Добавьте, это будет работать.
@PostMapping(value = "path", consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String updateDate(@RequestBody RequestVO requestVO) { // Added Request Body
logger.debug("requestVO.getStartDate()=" + requestVO.getStartDate());
}
Еще одна вещь, которую я заметил, это формат даты "dd.MM.yyyy hh:mm:ss"
, я думаю, что это не правильный формат DateTimeFormatter
Допустимые форматы
"yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"
Note : Might have missed some Formats but if any do edit it will be helpful to all
UPDATE
Если вам не нужен миллисек, я думаю, @DateTimeFormat
вам не поможет, используйте @JsonFormat
, как предлагали другие. Но вы должны изменить формат тела запроса, например
{
"startDate":"2019-11-11 11:11:11"
}
и изменение в классе будет
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
Date startDate;
Также рассмотрены форматы SimpleDateFormat
(@JsonFormat
используйте это окно), см. SimpleDateFormat - Patterns