Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Проблема с форматом даты Joda DateTime Json

Автор вопроса: HarryОтветов: 2

Я хотел бы, чтобы вывод 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());
}

Спасибо

jsongsondatetimejodatimejsonobject

Ответы

Ответ 1 · Harry

В JS/Jquery я использовал

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

Ответ 2 · рейтинг -1 · gnasher729

Вот ваше время:

1431463708237

Примечание: без кавычек. Это число.

Вот ваш формат даты:

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

Вы видите, что ваше время и формат даты совсем не совпадают?

Теперь посмотрите, как называется время: оно называется "iMillis". Угадайте, что может измерять это число. Теперь возьмите свой любимый калькулятор и узнайте, сколько ему лет. Сейчас 2015 год, так что угадайте, когда это время начало отсчитываться. Затем подумайте о значении 1970 года в связи с отметками времени. Например, вы можете ввести в Google "отметка времени 1970".

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы