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;
    }
  • 相关阅读:
    数据库里面的表空间,用户在实际开发中的使用
    并行编程的模型机制
    临时表在开发中的使用

    HIbernate编程模型
    网络数据如何可靠传输
    Spring Security编程模型
    java的缓存框架
    sort函数使用自定义数据排序使用
    FailOver的机制
  • 原文地址:https://www.cnblogs.com/stromluo/p/8543694.html
Copyright © 2011-2022 走看看