Ищу объяснение.
У меня есть Spring API, который принимает дату как ZonedDateTime в формате ISO и возвращает дату в формате UTC. Когда я отправляю несуществующий день, например 2024-09-31T02:00-04:00, он возвращается пользователю как 2024-09-30T06:00Z. .
Когда я отправлю 2024-09-32T02:00-04:00, я получу ошибку десериализации. Почему я не получаю то же самое за 9-31?
Объект
public class Object implements Serializable {
private static final long serialVersionUID = xxx;
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mmXXX")
private ZonedDateTime date;
}
Контроллер
@PostMapping(value = "endpoint", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@Validated
public ResponseEntity submitLoadBids(@Valid @RequestBody Object testObj){
return ResponseEntity.ok().body(testObj);
}
Тело запроса
{
"date": "2024-09-31T02:00-04:00"
}
Ответ
{
"date": "2024-09-30T06:00Z"
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... esnt-exist
Spring 3 – ZonedDateTime Дата десериализации, которая не существует ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
После обновления Spring boot 3.2.x ZoneddateTime сохраняется в БД всегда в формате UTC.
Anonymous » » в форуме JAVA - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
После обновления Spring boot 3.2.x ZoneddateTime сохраняется в БД всегда в формате UTC.
Anonymous » » в форуме JAVA - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-