我使用 Spring Boot,并尝试在 MongoDB 中保存一些日期。我输入的日期是
"2017-08-14T12:59"
我在保存时遇到此错误:
Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Failed to parse Date value '2017-08-14T12:59': Can not parse date "2017-08-14T12:59.000Z": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSS'Z'', parsing fails (leniency? null); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Failed to parse Date value '2017-08-14T12:59': Can not parse date "2017-08-14T12:59.000Z": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSS'Z'', parsing fails (leniency? null) (through reference chain:
在我的 POJO 中我尝试这样:
@JsonDeserialize(using= CustomDateDeserialize.class)
private Date inputDateTime;
我已经实现了这样的反序列化器:
private SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm");
@Override
public Date deserialize(JsonParser paramJsonParser,
DeserializationContext paramDeserializationContext)
throws IOException, JsonProcessingException {
String str = paramJsonParser.getText().trim();
try {
return dateFormat.parse(str);
} catch (ParseException e) {
}
return paramDeserializationContext.parseDate(str);
}
我还想念这里什么?任何帮助表示赞赏。
最佳答案
您需要修改解串器中的格式。
SimpleDateFormat dateFormat = new SimpleDateFormat( “yyyy-MM-dd'T'HH:mm”);
无论如何 simpledatetimeformat 都不是线程安全的。如果你java8使用DateTimeFormat。
关于java - 无法使用 Spring Boot 将日期时间保存到 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45658195/