Joda DateTime Json 日期格式问题

Joda DateTime Json date format issue

我希望 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());
}

谢谢

这是你的时间:

1431463708237

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

这是您的日期格式:

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

你能看出你的时间和日期格式完全不匹配吗?

现在看看这个时间叫什么:它叫"iMillis"。猜猜这个数字可以测量什么。现在拿出你最喜欢的计算器,算出它是多少年。现在是 2015 年,猜猜这个时间是从什么时候开始计算的。然后考虑与时间戳有关的 1970 年的意义。例如,您可以将 "time stamp 1970" 键入 Google。

在JS/Jquery中,我用了

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