zoukankan      html  css  js  c++  java
  • 使用Jackson时转换JSON时,日期格式设置

    1.普通的方式:

    默认是转成timestamps形式的,通过下面方式可以取消timestamps。

    objectMapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
     
     这样将使时间生成使用所谓的use a [ISO-8601 ]-compliant notation, 输出类似如下格式的时间: "1970-01-01T00:00:00.000+0000".

    当然也可以自定义输出格式:

     
    objectMapper.getSerializationConfig().setDateFormat(myDateFormat);
     
    myDateFormat对象为java.text.DateFormat,具体使用清查java API

    SimpleDateFormat myDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    objectMapper.getSerializationConfig().setDateFormat(myDateFormat);
    
    

    2.annotaion的注释方式:

    先定义自己需要的格式,例如:

    Java代码

    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import org.codehaus.jackson.JsonGenerator;
    import org.codehaus.jackson.JsonProcessingException;
    import org.codehaus.jackson.map.JsonSerializer;
    import org.codehaus.jackson.map.SerializerProvider;
    
    /**
     *  java日期对象经过Jackson库转换成JSON日期格式化自定义类
     * @author yuruli
     * @date 2010-7-25
     */
    public class CustomDateSerializer extends JsonSerializer {
    
            @Override
            public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
                    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                    String formattedDate = formatter.format(value);
                    jgen.writeString(formattedDate);
            }
    }

    然后在你的POJO上找到日期的get方法

    @JsonSerialize(using = CustomDateSerializer.class)
    public Date getCreateAt() {
         return createAt;
    }
  • 相关阅读:
    vue.js实战——.native修饰符
    vue.js实战——props数据验证(自定义构造器检测)
    vue.js实战——props单向数据流
    vue组件之嵌套
    vue非父子组件之间的通信——发布订阅模式,总线机制
    脚本加载优化方法
    文字溢出时,实现在末尾显示三个点省略效果
    1-stm32 gpio库函数
    2-C语言 排序算法
    电子工程师扫盲
  • 原文地址:https://www.cnblogs.com/stromluo/p/8543694.html
Copyright © 2011-2022 走看看