Поле даты неправильно обрабатывается с помощью JsonNode - PullRequest
0 голосов
/ 06 марта 2020

Я читаю запись данных из таблицы кассандры. Создание объекта Java, который я построил. Установка всех значений с помощью того, что я получаю из записи данных (я получаю эти значения из записи, используя Джексона). Когда я смотрю на запрос json, я вижу длинное значение, похожее на doulbe. Хотите знать, в каком формате это? И тогда почему это отрицательно? Вот что я получил ...

JsonNode ccEventNode = new ObjectMapper().readTree(row.getString(0));
ccEventNode.get("last_pyflt_dt")

Это дает мне значение "1901-01-01". Я тогда ...

CCEvent ccEvent = new CCEvent;
ccEvent.getHistory().setLast_pyflt_dt(new SimpleDateFormat("yyyy-MM-dd").parse(ccEventNode.get("last_pyflt_dt").textValue()));

Это дает мне значение для поля Дата, которое я только что установил "Вт Янв 01 00:00:00 EST 1901"

Но когда я читаю JSON запрос, как только я закончу устанавливать все другие значения, я вижу значение как ...

"lastPaymentFloatDate":-2177434800000

Мой первый вопрос. Что это за значение? Это количество минут от определенной даты? Почему это отрицательно? Это вызывает проблемы, когда я отправляю его в веб-сервис. Когда у меня есть другие даты, такие как «2020-02-04», это не вызывает никаких проблем. Он также показывает мне в запросе большое число, подобное приведенному выше, но это не отрицательно. Немного смущен.

1 Ответ

3 голосов
/ 06 марта 2020

-2177434800000 - это количество миллисекунд до epoch time.
Время эпохи составляет 1 January 1970 00:00:00, что считается 0 миллисекундами. В любое время до того, как оно станет отрицательным, а после - как положительное. Думайте о времени эпохи как 0 в числовой строке. Вы можете прочитать больше об этом здесь и здесь .

Кроме того, вы можете проверить, что -2177434800000 означает 1901-01-01 на этом сайте преобразователя эпох .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...