JSONArray.toCollection 时间总是转化为当前时间

来源:互联网 发布:淘宝会员注册网站 编辑:程序博客网 时间:2024/05/19 16:20

1.问题描述

public class Test {    private int id;    private Date createDate;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public Date getCreateDate() {        return createDate;    }    public void setCreateDate(Date createDate) {        this.createDate = createDate;    }    @Override    public String toString() {        return "aa{" +                "id=" + id +                ", createDate=" + createDate +                '}';    }    public static void main(String[] args)  {        String value="[{id:1,createDate:\"2015-02-23\"}]";        List<Test> list = (List) JSONArray.toCollection(JSONArray.fromObject(value), Test.class);        for (Test a:list){            System.out.println(a);        } }}

打印结果:

aa{id=1, createDate=Wed Aug 23 19:44:21 CST 2017}

时间类型被转换为了当前时间

2.解决

加上如下代码:

String[] dateFormats = new String[] {"yyyy-MM-dd"};        JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats));

这里写图片描述

打印结果:

aa{id=1, createDate=Mon Feb 23 00:00:00 CST 2015}

ok

原创粉丝点击