Задать вопрос
LemonRX
@LemonRX
Начинающий Android разработчик

Как правильно сравнить две даты?

С сервера получаю время в timestamp, последнего действия пользователя. Вся суть сводится к тому, чтобы определить онлайн пользователь еще или нет.

Далее судя документации System.currentTimeMillis() возвращает время с 1 января 1970 года в миллисекундах в UTC, и тут возникает вопрос, часовой пояс по идеи не должен влиять на System.currentTimeMillis(), правильно?

//Получаю timestamp на устройстве
long timestamp = System.currentTimeMillis() / 1000L;

//Время когда пользователь перестанет быть онлайн
long online = latestAct+ 960L;

if(online > timestamp ){
    //Онлайн
} else {
   //Офлайн
}


И по идее все должно работать отлично, но нет. На одном устройстве работает нормально, на другом нет.
На устройстве работает не правильно установлено время. Как правильно выполнить данное действие?

P.S проверил, устройство возвращает unix на час вперед
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@klim76
android/java/sql
//Получаю timestamp на устройстве
long timestamp = System.currentTimeMillis() / 1000L;

Эта штука может вам вернуть всё что угодно, не правда ли?
Правильней было бы что бы сервер отвечал - онлайн пользователь или нет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы