springboot中解析jason序列化中的Date对象不支持yyyy-MM-dd HH:mm:ss这种格式

网上查资料,上面说的是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 {


    @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 - 时区

你可能感兴趣的:(springboot中解析jason序列化中的Date对象不支持yyyy-MM-dd HH:mm:ss这种格式)