LocalDateTime序列化成yyyy-MM-dd HH:mm

本文介绍如何使用Jackson库将Java中的LocalDateTime对象序列化为指定格式的字符串,并演示了如何处理包含泛型的数据对象的序列化与反序列化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.LocalDateTime 对象如何序列化成yyyy-MM-dd HH:mm:ss


使用jackon对LocalDateTime对象进行序列化时
会变成这样的格式

	{
	  "year": 2020,
	  "month": "AUGUST",
	  "era": "CE",
	  "dayOfMonth": 1,
	  "dayOfWeek": "TUESDAY",
	  "dayOfYear": 213,
	  "leapYear": false,
	  "monthValue": 8,
	  "chronology": {
	      "id":"ISO",
	      "calendarType":"iso8601"
	   }
	}

如何将他变成 2020-01-02 12:12:12 这样的形式呢

需要这么做


	ObjectMapper mapper = new ObjectMapper();
	mapper.registerModule(new JavaTimeModule());
	mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);

就是激活JavaTimeModule

添加依赖


	 <dependency>
	     <groupId>com.fasterxml.jackson.datatype</groupId>
	      <artifactId>jackson-datatype-jsr310</artifactId>
	 </dependency>


2.序列化包含泛型的java对象

假如序列化的对象包含泛型,那么可以使用TypeReference

import com.fasterxml.jackson.core.type.TypeReference;

DataDto<List<VibrationData>> o = mapper.readValue(json, 
  new TypeReference<DataDto<List<VibrationData>>>() {});


DateDto:
package com.tonglei.recevce.entity.dto;

public class DataDto<T> {
    private T data;
    private int len;
    private String instrument;

    public DataDto(){}

    public DataDto(T data, int len, String instrument) {
        this.data = data;
        this.len = len;
        this.instrument = instrument;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public int getLen() {
        return len;
    }

    public void setLen(int len) {
        this.len = len;
    }

    public String getInstrument() {
        return instrument;
    }

    public void setInstrument(String instrument) {
        this.instrument = instrument;
    }
}

参考资料

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值