У меня есть REST конечной точки в моей Spring приложение, которое выглядит как этотZonedDateTime, как PathVariable весной REST RequestMapping
@RequestMapping(value="/customer/device/startDate/{startDate}/endDate/{endDate}", method=RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE)
public Page<DeviceInfo> getDeviceListForCustomerBetweenDates(@PathVariable ZonedDateTime startDate, @PathVariable ZonedDateTime endDate, Pageable pageable) {
... code here ...
}
Я попытался переходящая в переменных пути как оба миллисекундах и секундах. Тем не менее, я получаю следующее исключение в обоих направлениях:
"Failed to convert value of type 'java.lang.String' to required type 'java.time.ZonedDateTime'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type @org.springframework.web.bind.annotation.PathVariable java.time.ZonedDateTime for value '1446361200'; nested exception is java.time.format.DateTimeParseException: Text '1446361200' could not be parsed at index 10"
Может кто-то пожалуйста, объясните, как я могу передать (или как секунды или миллисекунды) строку, такие как 1446361200 и получить его преобразовать в ZonedDateTime?
Или это единственный способ передать как строку, а затем сделать преобразование самостоятельно? Если да, то есть общий способ получить эту обработку для нескольких методов с похожим дизайном?
'ZonedDateTime' относительно новый, и Spring, вероятно, не был обновлен, чтобы поддерживать его напрямую. См. Ответ JasonZ для обходного пути для этого. – Powerlord