Довольно просто, согласно документам.
Мое поле POJO выглядит так:
public class Message {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss.SSS")
private Date _timestamp;
public Date getTimestamp() {
return _timestamp;
}
public void setTimestamp(Date timestamp) {
this._timestamp = timestamp;
}
}
Я пытаюсь сопоставить это с Джексоном так:
ObjectMapper mapper = new ObjectMapper();
Message message = mapper.readValue(message, Message.class);
Строка входящей даты выглядит следующим образом:
2018-10-30 12:44:34.270
Я получаю следующую ошибку:
com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not construct instance of java.util.Date from String value '2018-10-30 12:44:34.270': not a valid representation (error: Failed to parse Date value '2018-10-30 12:44:34.270': Can not parse date "2018-10-30 12:44:34.270": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
Я пробовал следующее, но ошибка не меняется:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss.SSSZ")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
Не уверен, что еще я могу сделать. Я не могу изменить входящий формат, поэтому я должен жить с этим.
Заранее спасибо.