В своем приложении я добавил REST.Чтобы проверить эти методы, я создал несколько базовых строк в своей базе данных.
Когда я пытаюсь использовать GET с идентификатором для получения конкретной строки в моей базе данных, я получаю исключение Джексона.
com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2019-03-11T10:14:14Z[UTC]": not a valid representation (error: Failed to parse Date value '2019-03-11T10:14:14Z[UTC]': Cannot parse date "2019-03-11T10:14:14Z[UTC]": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', parsing fails (leniency? null))
Мой объект, который я пытаюсь создать, имеет поле
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date published;
И вызываемый конструктор имеет вид
public something(Date published) {
this.published = published;
}
Я прочитал в вопросе StackOverflow, я должен добавить
@JsonType(pattern="")
над полем «Опубликован», но я не могу найти то, что мне нужно импортировать, чтобы эта аннотация работала.
РЕДАКТИРОВАТЬ: Благодаря ответу ШАХАКАШа мне удалось добавитьаннотация в конце концов.
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = TimeZone.getDefault(), locale = Locale.getDefault())
Однако у меня есть две проблемы с этим, во-первых, это не позволит мне сохранить часовой пояс и локаль.Поэтому удаление этих файлов позволяет моей программе запускаться
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS")
, что приводит к ошибке:
Cannot deserialize value of type `java.util.Date` from String "2019-03-11T10:14:14Z[UTC]": expected format "yyyy-MM-dd'T'HH:mm:ss.SSS"
Очевидно, это означает, что мой формат неверен.У меня много проблем, чтобы найти правильный формат моей даты.