Java8 对于LocalDateTime的序列化和反序列化
Posted 刘元涛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java8 对于LocalDateTime的序列化和反序列化相关的知识,希望对你有一定的参考价值。
这里以jackjson为例
配置反序列化工具
/**
* 时间戳反序列化时间
*
* @author liuyuantao
*/
public class Str2LocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime>
private static final String STANDARD_PATTERN = "yyyy-MM-dd HH:mm:ss";
@Override
public LocalDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException
DateTimeFormatter formatterDateTime = DateTimeFormatter.ofPattern(STANDARD_PATTERN);
String timeStr = jsonParser.getValueAsString();
return LocalDateTime.parse(timeStr, formatterDateTime);
解决1:
配置全局日期格式化
@Configuration
public class WebMvcConfig implements WebMvcConfigurer
@Value("$spring.jackson.date-format:yyyy-MM-dd HH:mm:ss")
private String pattern;
@Bean
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer()
return builder ->
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
//返回时间数据序列化
builder.serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(formatter));
//接收时间数据反序列化
builder.deserializerByType(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
;
解决2:
在LocalDateTime 实体类使用注解
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime issueDate;
以上是关于Java8 对于LocalDateTime的序列化和反序列化的主要内容,如果未能解决你的问题,请参考以下文章
Java8 对于LocalDateTime的序列化和反序列化
Java8 对于LocalDateTime的序列化和反序列化
在将 json 反序列化为对象时,使用 jackson 将 asp.net / MS 专有 json Dateformat 转换为 java8 LocalDateTime
Spring Boot 问题使用 Jackson 序列化 java.time.LocalDateTime 以返回 ISO-8601 JSON 时间戳?