开发者社区> 问答> 正文

Jackson2.x格式化时间的问题?

项目是基于Spring3.2的web项目,数据是JSON传输;在jackson1.9的时候 格式化时间只需

@Component("customObjectMapper")
public class CustomObjectMapper extends ObjectMapper {
 
    public CustomObjectMapper() {
        CustomSerializerFactory factory = new CustomSerializerFactory();
        factory.addGenericMapping(Date.class, new JsonSerializer<Date>() {
            @Override
            public void serialize(Date value, JsonGenerator jsonGenerator, SerializerProvider provider)
                    throws IOException, JsonProcessingException {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                jsonGenerator.writeString(sdf.format(value));
            }
        });
        this.setSerializerFactory(factory);
    }
}
在spring配置文件中增加

<mvc:annotation-driven>  
        <mvc:message-converters>  
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">  
                <property name="objectMapper" ref="customObjectMapper"></property>  
            </bean>  
        </mvc:message-converters>  
    </mvc:annotation-driven>

controller中就可以直接使用 @ResponseBody 输出格式化后的JSON 但是在升级到 jackson2 后,CustomSerializerFactory 类就没有了;因为没有Bean,查询数据是List> 这种格式,jackson2 注解也用不上 。 请问在这个版本中如何有效的格式化时间?

展开
收起
a123456678 2016-03-17 16:22:57 3667 0
1 条回答
写回答
取消 提交回答
  • 引入包:jackson-annotations.jar

    返回的对象中有date类型的加如下注释

    private Date endDate;
     
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    public Date getEndDate() {
    return endDate;
    }
     
     
    public void setEndDate(Date endDate) {
    this.endDate = endDate;
    }
    2019-07-17 19:05:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载