Я пытаюсь получить ленту новостей с помощью FQL Facebook (API).
Пытаясь просмотреть результаты, я изначально использовал параметры LIMIT и OFFSET следующим образом:
SELECT post_id,.... FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid = me() AND type = 'newsfeed') AND is_hidden = 0 LIMIT 20 OFFSET 0
И затем каждый раз, когда я достигаю конца ListView
, я запускаю другой запрос и получаю следующий набор фидов, увеличивая OFFSET на +20. Я взял логику из этого ответа: https://stackoverflow.com/a/13265776/450534
Однако проблема в том, что параметры LIMIT и OFFSET не обязательно дают вам все результаты, а поиск в SO показал, что Facebook рекомендует использовать ограничения time.
Теперь мне нужно изменить код, чтобы потоки загружались каждый день. Например:
Initial Set Of Data - `created_time < 1355788800` (17th December)
Second Set Of Data - `created_time < 1355702400` (16th December)
Third Set Of Data - `created_time < 1355616000` (15th December)
.
.
.
.
После небольшого поиска решение для преобразования текущего времени в Unix TimeStamp было достигнуто следующим образом:
Date now = new Date();
long unixTime = new Long(now.getTime()/1000);
Но как уменьшить Date
на 1 для каждого нового набора данных? Я попробовал этот фрагмент кода:
Calendar newCal = Calendar.getInstance();
Calendar xDate = (Calendar) newCal.clone();
xDate.set(Calendar.DATE, -1);
System.out.println(xDate.getTime().toString());
Но результат таков: Thu Nov 29 17:18:50 GMT+05:30 2012
когда я надеялся, что это будет 16 декабря. Любая помощь будет оценена.
Спасибо.