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;
    }
  • 相关阅读:
    阻止所有普通账号登录服务器
    grep命令
    redis集群配置和节点管理
    redis的安装和配置
    shell特殊字符
    获取docker容器的ip地址
    mysql5.6.38误删除root用户后的一系列问题及解决办法
    CenrOS7.5安装msyql5.7.24
    使用163邮箱的smtp ssl端口发送邮件
    linux统计大文件行数的命令效率大对比
  • 原文地址:https://www.cnblogs.com/stromluo/p/8543694.html
Copyright © 2011-2022 走看看