Разбор даты json в определенный формат даты - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь проанализировать некоторый документ json, который содержит запись даты, как числовое значение эпохи, после использования: Document.parse(((JSONObject) o).toJSONString()) формат даты автоматически устанавливается на ie.Wed Nov 08 05:10:20 CET 2017 Мне нужен другой формат (тоже нужны миллисекунды)

Так что вопрос в том, как разобрать т.е."$date" -> "1510114220518" к какой-нибудь пользовательской строке с методом Bson Document.parse?

JSONArray arrJson = getJsonData(sFilePath);
            for (Object o : arrJson) { 
                Document doc = Document.parse(((JSONObject) o).toJSONString());

Редактировать: просто обновление: проблема в методе Document.parse, потому что я не знаю, как сказать .parse функцию использоватьПользовательский формат даты при разборе документа JSON.Я всегда получаю какой-то формат даты по умолчанию.Как отправить методу .parse какой-нибудь аргумент, чтобы вернуть мне документ со всеми данными и форматом CUSTOM DATE?smtng как:

Format dateFormat = 'yyyy-MM-dd@HH:mm:ss.SSSZ'
Document doc = Document.parse(((JSONObject) o).toJSONString(dateFormat ));```

Im always getting ```Wed Nov 08 05:10:20 CET 2017``` format, **I need a Document with all data and all dates to be in yyyy-MM-dd@HH:mm:ss.SSSZ format** ?

This is sample of json document:
[
{ "_id" : { "user_id" : { "$oid" : "51b76b7459a273c8a6000ed8" }, "updated_at" : { "$date" : 1510114220518 } }, "count" : 153 },
{ "_id" : { "user_id" : { "$oid" : "51b76b7459a273c8a6000ed8" }, "updated_at" : { "$date" : 1511405948977 } }, "count" : 3 },
{ "_id" : { "user_id" : { "$oid" : "51b76b7459a273c8a6000ed8" }, "updated_at" : { "$date" : 1511405948991 } }, "count" : 153 }

and when I do the Document.parse()...date is in some default format like ie. Wed Nov 08 05:10:20 CET 2017

1 Ответ

0 голосов
/ 24 июня 2019

Насколько я понимаю ваш вопрос, вы можете просто использовать класс Java SimpleDateFormat. Например:

long time = 1510114220518;
SimpleDateFormat simpleFormat = new SimpleDateFormat ("yyyy.MM.dd 'at' hh:mm:ss");
Date date = new Date(time);
System.out.println(simpleFormat.format(date));
...