Joda DateTime Json日期格式问题

时间:2015-06-08 14:10:27

标签: json datetime gson jodatime jsonobject

我希望JSON输出采用特定的日期格式。我的JSON输出是:

"data":[[{"id":1,"createTimestamp":{"iMillis":1431463708237,"iChronology":{"iBase":{"iMinDaysInFirstWeek":4}}},"startTimestamp":{"iMillis":1420092000000,"iChronology":{"iBase":{"iMinDaysInFirstWeek":4}}},"endTimestamp":{"iMillis":1451541600000,"iChronology":{"iBase":{"iMinDaysInFirstWeek":4}}}}]]

但我希望时间戳采用这种格式:

2015-05-12T20:48:28.237Z

我的代码:

JSONArray a = new JSONArray();
a.add(aList);

JSONObject j = new JSONObject();
j.put("data", a);

JsonArray array = new JSONArray();
array.add(j);

String jason = gson.toJson(array);

我试过这样的事,但没有工作

for (Noti n : aList) {
                DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
                dtf.parseDateTime(n.getCreateTimestamp().toString());
}

由于

2 个答案:

答案 0 :(得分:0)

这是你的时间:

1431463708237

注意:没有引号。这是一个数字。

这是您的日期格式:

"yyyy-MM-dd'T'HH:mm:ss.SSSZ"

你能看到你的时间和日期格式根本不匹配吗?

现在看看时间是什么:它被称为" iMillis"。猜猜这个数字可以测量什么。现在拿你最喜欢的计算器,找出它是多少年。现在是2015年,所以当这个时间开始计时时猜一猜。然后想想1970年与时间戳有关的重要性。例如,您可以键入"时间戳1970"进入谷歌

答案 1 :(得分:0)

在JS / Jquery中,我使用了

var endTimestamp = new Date(data[i].endTimestamp.iMillis);