环境:
- spring 3.2.18.RELEASE
First - pom文件添加依赖
<!--全局配置日期字符串处理--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.10.5</version> </dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310 --> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.10.5</version> </dependency>
<!--Hutool工具包--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.4.3</version> </dependency>
Second - 写配置类
1 import com.fasterxml.jackson.annotation.JsonInclude; 2 import com.fasterxml.jackson.databind.ObjectMapper; 3 4 import java.text.SimpleDateFormat; 5 import java.time.ZoneId; 6 import java.util.Locale; 7 import java.util.TimeZone; 8 9 /** 10 * jackson转json时格式化日期显示,全局设置 11 * 在spring-mvc.xml中配置 12 */ 13 public class CustomObjectMapper extends ObjectMapper { 14 public CustomObjectMapper() { 15 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 16 this.setDateFormat(sdf); 17 this.setTimeZone(TimeZone.getTimeZone(ZoneId.systemDefault())); 18 this.registerModule(new JavaTimeModule()); 19 this.setLocale(Locale.getDefault()); 20 this.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); 21 } 22 }
Third - 书写 日期转换类
import cn.hutool.core.date.DatePattern; import com.fasterxml.jackson.databind.cfg.PackageVersion; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; public class JavaTimeModule extends SimpleModule { public JavaTimeModule() { super(PackageVersion.VERSION); this.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN))); this.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN))); this.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))); this.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN))); this.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN))); this.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))); } }
Fifth-注入mvc容器
`ps: 注意路径替换`
1 <!-- 注册json转换器,并自定义日期格式转换--> 2 <mvc:annotation-driven> 3 <mvc:message-converters> 4 <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 5 <property name="objectMapper"> 6 <bean class="com.framework.mvc.CustomObjectMapper"/> 7 </property> 8 </bean> 9 </mvc:message-converters> 10 </mvc:annotation-driven>