Нет Такой тип данных
Там нет такого понятия, как «JSON метки времени». JSON имеет very few defined data types. Среди них нет типов даты и времени.
Как correct Answer по Scary состояний Wombat, номер, по-видимому подсчетом целых секунд с эпохи Unix в 1970. java.util.Date класс отслеживает время как миллисекундах с Unix epoch, а не целых секунд. Поэтому вам нужно умножить на 1000. Вам также необходимо иметь дело с целыми числами long
(64-разрядные), а не с int
(32-разрядными). Приложите верхний регистр L
к числовым литералам и объявите любые переменные как long
.
Классы java.util.Date/.Calendar, как известно, хлопотны. Теперь их вытесняют java.time package, встроенные в Java 8 и более поздние версии, и/или стороннюю библиотеку Joda-Time.
Различные библиотеки обработки JSON поддерживают конвертеры для создания объектов java.time или Joda-Time. Или вы можете выполнить преобразование в своем коде, как показано ниже.
Помните, что и java.time, и Joda-Time поддерживают назначение часового пояса. Код ниже присваивает UTC для демонстрационных целей, но вы можете назначить желаемую/ожидаемую зону.
Joda времени
Вот код в Joda-Time 2.8.1, показывающий использование вашего входного числа либо как секундах или миллисекундах.
long secondsSinceEpoch = 1419038000L;
DateTime dateTimeSeconds = new DateTime(secondsSinceEpoch , DateTimeZone.UTC);
DateTime dateTimeMillis = new DateTime(secondsSinceEpoch * 1000L , DateTimeZone.UTC); // Note the crucial "L" appended to the numeric literal.
Дамп для консоли.
System.out.println("dateTimeSeconds: " + dateTimeSeconds);
System.out.println("dateTimeMillis: " + dateTimeMillis);
При запуске.
dateTimeSeconds: 1970-01-17T10:10:38.000Z
dateTimeMillis: 2014-12-20T01:13:20.000Z
java.time
Аналогичный код выше, но с использованием java.time Явы 8.
Instant instant = Instant.ofEpochSecond(1419038000L);
ZonedDateTime zdtUtc = ZonedDateTime.ofInstant(instant , ZoneOffset.UTC);
ZonedDateTime zdtMontréal = zdtUtc.withZoneSameInstant(ZoneId.of("America/Montreal"));
Dump утешать.
System.out.println("zdtUtc: " + zdtUtc);
System.out.println("zdtMontréal: " + zdtMontréal);
При запуске.
zdtUtc: 2014-12-20T01:13:20Z
zdtMontréal: 2014-12-19T20:13:20-05:00[America/Montreal]
Как вы разбираете Json? Посмотрите на gson или jackson – beresfordt
@pavankumarparasa Пожалуйста, не публикуйте посторонние данные и данные. Минимизируйте свой сценарий до минимума, необходимого для демонстрации вашей проблемы. См. [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). –