Насколько я знаю, не существует стандартного способа представления даты в JSON.Похоже, что то, что вы получаете, является интегральным значением, представляющим число секунд , прошедшее с эпохи 1 января 1970 года, 00:00:00 по Гринвичу.Это несколько отличается от того, что ожидает конструктор Date(long date)
.Конструктор ожидает миллисекунд с эпохи.Вам нужно умножить значения из JSON на 1000, чтобы правильно использовать их с Date
.
long jsonDate = 1266036226L;
Date date = new Date(jsonDate * 1000);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
String stringDate = dateFormat.format(date);
Вот различные представления для приведенных вами примеров.Соответствуют ли они тому, что вы ожидаете?
- 1266029455 <==> 12 февраля 2010 года 09: 50: 55
- 1266312467 <==> 16 февраля 2010 года 04: 27: 47
- 1266036226 <==> 12 февраля 2010 г. 11: 43: 46
- 1266072180 <==> 13 февраля 2010 г. 09: 43: 46
Обратите внимание, что по умолчанию SimpleDateFormat
использует местный часовой пояс.В моем случае это GMT-0500.Другой часовой пояс можно указать, вызвав метод setTimeZone
.