网上查资料,上面说的是jackson只支持以下几种日期格式:
"yyyy-MM-dd'T'HH:mm:ss.SSSZ";
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
"yyyy-MM-dd";
"EEE, dd MMM yyyy HH:mm:ss zzz
解决办法:
第一种方法:
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 解析jason序列化中的Date对象不支持yyyy-MM-dd HH:mm:ss这种格式
* 在DTO接受参数对象上加上@JsonDeserialize(using = DateJsonDeserializer.class)注解
* 如:
* @JsonDeserialize(using = DateJsonDeserializer.class)
* private Date endDate;
*/
public class DateJsonDeserializer extends JsonDeserializer<Date> {
@Override
public Date deserialize(JsonParser parser, DeserializationContext context)
throws IOException, JsonProcessingException {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.parse(parser.getValueAsString());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
第二种方法:参数解释:pattern - 格式,timezone - 时区