ETJava Beta | Java    注册   登录
  • json中处理日期格式

    发表于 2024-04-17 00:33:35     阅读(220)     博客类别:JSON

    json中处理日期格式

     

    JSON中处理日期格式方式有很多,这里我们单独抽离一个工具类出来进行处理日期格式

     

    然后在实体类中针对日期类型的get方法上使用@JsonSerialize(using = xxx.class)

     

    处理json中日期之前

     

    json中日期处理工具类

    package com.et.util;
    
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import com.fasterxml.jackson.core.JsonGenerator;
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.JsonSerializer;
    import com.fasterxml.jackson.databind.SerializerProvider;
    
    /**
     * 自定义返回JSON 数据格式中日期格式化处理
     * @author Administrator
     *
     */
    public class CustomDateTimeSerializer extends JsonSerializer<Date>{
    
    	@Override
    	public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers)
    			throws IOException, JsonProcessingException {
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    		gen.writeString(sdf.format(value));  
    	}
    
    }
    

    实体类示例

    package com.et.entity;
    
    import com.et.util.CustomDateTimeSerializer;
    import com.fasterxml.jackson.databind.annotation.JsonSerialize;
    import lombok.Data;
    
    import javax.persistence.*;
    import java.util.Date;
    
    /**
     * @Author: ETJAVA
     * @CreateTime: 2024-04-15  09:20
     * @Description: TODO 电影实体类
     * @Version: 1.0
     */
    @Data
    @Entity
    @Table(name = "t_film")
    public class Film {
    
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Integer id;
    
        @Column(length = 200)
        private String filmName; // 电影名称
        @Column(length = 200)
        private String title;// 帖子标题
        @Lob
        @Column(columnDefinition = "TEXT") // 大文本数据类型
        private String content;// 帖子内容
        @Column(length = 200)
        private String imageName;// 电影图片名称
        private Integer isHot;// 是否为热门电影 1是 0否
        private Date publishDate;// 电影发布日期
    
        // 获取发布日期时 指定处理日期格式的类
        @JsonSerialize(using = CustomDateTimeSerializer.class)
        public Date getPublishDate() {
            return publishDate;
        }
    }
    

     

    处理json中的日期格式之后效果