`
zcw_java
  • 浏览: 297476 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Jackson返回日期格式

 
阅读更多
近日,使用Jackson转化JSON对象的时候,显示的时候,日期始终显示不正确,输出的日期是一串数字代表的时间戳,不符合要求,所以想到Jackson应当有方法设置输出的日期格式。后来一查果然有两种方式来实现:

1.普通的方式:

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

Java代码
objectMapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false); 

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

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

Java代码
objectMapper.getSerializationConfig().setDateFormat(myDateFormat); 

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

myDateFormat对象为java.text.DateFormat,具体使用清查java API2.annotaion的注释方式:

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

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 godfox  
* @date 2010-5-3  
*/  
public class CustomDateSerializer extends JsonSerializer<Date> {   
  
        @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);   
        }   
}  

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 godfox 
* @date 2010-5-3 
*/ 
public class CustomDateSerializer extends JsonSerializer<Date> { 

        @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;   
       } 

StringWriter sw = new StringWriter();   
JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);   
JacksonUtil.getInstance().writeValue(gen, jsonlist);   
gen.close();   
String finalInfo = sw.toString();   
System.out.println("finalinfo is:"+finalInfo );  

分享到:
评论

相关推荐

    SpringBoot中时间类型序列化、反序列化、格式处理.docx

    Date yml全局配置 spring: jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss #配置POST请求Body中Date时间类型序列化格式处理,并返回 请求参数类型转换

    jackson-homework:用Jackson进行Java序列化的家庭作业

    在于EventController中的两个接口,能够接收和返回如下格式的JSON: { " id " : " 1 " , " name " : "下载文件" , " type " : " D " , " time " : 1590050488701 , " userId " : " 3 " , " userName " : ...

    B-java-serialization-with-jackson-homework:用Jackson进行Java序列化的家庭作业

    在于EventController中的两个接口,能够接收和返回如下格式的JSON: { " id " : " 1 " , " name " : "下载文件" , " type " : " D " , " time " : 1590050488701 , " userId " : " 3 " , " userName " : ...

    SpringBoot中时间类型 序列化、反序列化、格式处理.docx

    Date yml全局配置 spring: jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss #配置POST请求Body中Date时间类型序列化格式处理,并返回 请求参数类型转换

    spring boot @ResponseBody转换JSON 时 Date 类型处理方法【两种方法】

    主要介绍了spring boot @ResponseBody转换JSON 时 Date 类型处理方法,主要给大家介绍Jackson和FastJson两种方式,每一种方法给大家介绍的都非常详细,需要的朋友可以参考下

    SpringBootConformity:SpringBoot + Mybatis + Redis +任务

    不管多少个错误都以map形式返回502:拦截器拦截到用户token出错555:异常抛出信息(2)pojo对属性得jackson相关注解@JsonIgnore json数据中不显示该属性@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss a",locale="zh",time...

    JAVA上百实例源码以及开源项目

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可...

    jsonview-demo:@JsonView 的使用演示

    很长一段时间以来,我们一直希望能够指定一个提供的端点生成“摘要”对象,而另一个端点生成详细的对象。 像这样: /users - 返回所有用户的摘要对象 /users/{id} - 返回特定用户的详细对象 介绍@JsonView Jackson...

    location-server:基于位置的签入服务器的 REST API - 使用 Node.JS、MongoDB、Express 框架

    与 Jackson Clawson 和 Dan Callahan 合作时间:5 小时 已实现的功能 POST /sendLocation API 返回所有数据条目(登录、纬度、lng、日期)的 JSON,如果用户名已存在,则在发送的参数更新失败时返回消息 GET /...

    upskill-project1

    应用程序应使用城市日期和位置来检索平均值 平均结果应保存在数据库中 (可选)对系统的访问应仅限于经过身份验证和授权的用户 技术领域 Spring框架包括:Web,JPA,安全性 网络通信的其余模板 JDBC或Hibernate 域...

    JAVA上百实例源码以及开源项目源代码

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可...

    mysql数据库的基本操作语法

    insert into temp values(null, ‘jack’, 22), (null, ‘jackson’ 23); 2、 update 修改语句 update主要完成对数据的修改操作,可以修改一条或多条数据。修改多条或指定条件的数据,需要用where条件来完成。 ...

    java开源包1

    注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 ...

    java开源包11

    注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 ...

    java开源包2

    注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 ...

    java开源包3

    注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 ...

    java开源包6

    注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 ...

    java开源包5

    注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 ...

    java开源包10

    注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 ...

Global site tag (gtag.js) - Google Analytics