关于LocalDateTime不返回时间戳问题

1.创建LocalDateTimeSerializer类
    2.重定义mapperObject的Bean.
复制代码

1 创建LocalDateTimeSerializer类:

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;

/**
 * 处理localdatetime 不返回时间戳的问题
 *
 * @author dripy
 * @date 2019/7/23 17:51
 */
public class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {
    @Override
    public void serialize(LocalDateTime localDateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
        jsonGenerator.writeNumber(localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli());
    }
}
复制代码

2 重定义mapperObject的Bean:

/**
 * 处理localdatetime 不返回时间戳问题
 *
 * @return
 */
@Bean(name = "mapperObject")
public ObjectMapper getObjectMapper() {
    ObjectMapper om = new ObjectMapper();
    JavaTimeModule javaTimeModule = new JavaTimeModule();
    // 注意这里的LocalDateTimeSerializer是上面自己实现的一个。
    javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer());
    javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
    javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
    om.registerModule(javaTimeModule);
    return om;
}
复制代码

补充:

目前没找出是哪里的原因。有空去找。
    之前一直都是返回时间戳的。
    突然发现不返回了。应该是升级了Springboot的版本原因。

复制代码

原文 

https://juejin.im/post/5de4b2166fb9a07194761661

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 关于LocalDateTime不返回时间戳问题

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址