Преобразовать метку времени в облачном хранилище в удобочитаемую дату - PullRequest
0 голосов
/ 22 мая 2019

Как преобразовать метку времени, полученную из базы данных Firestase Firebase, и сравнить ее с текущей датой и временем.

 db.collection("users").document(user.getuid).get()
                .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                    @Override
                    public void onSuccess(DocumentSnapshot documentSnapshot) {
                        String date = documentSnapshot.getData().get("last_login_date").toString();

                    }
                });

Преобразовать дату в читаемую и вычесть ее из текущего времени, чтобы показать разницу в днях, часах и минутах

Вывод даты vairbale в формате ниже Отметка времени (секунды = 1558532829, наносекунды = 284000000)

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Когда вы считываете поле типа метки времени из документа в Cloud Firestore, оно появляется как объект типа Timestamp в Java.Обязательно прочитайте связанный Javadoc, чтобы узнать больше об этом.

Timestamp timestamp = (Timestamp) documentSnapshot.getData().get("last_login_date");

Метка времени имеет два компонента: секунды и наносекунды.Если эти значения вам бесполезны, вы можете преобразовать метку времени в объект Java Date, используя метод toDate () , но вы можете потерять часть наносекундной точности отметки времени, поскольку объекты Date используют только микросекундную точность.

Date date = timestamp.toDate();

С объектом Date вы сможете легко использовать другие инструменты форматирования даты, такие как собственные параметры форматирования даты в Android .Вы также можете использовать метод Date toMillis(), чтобы сравнить его с текущим временем из System.currentTimeMillis();

См .:

0 голосов
/ 22 мая 2019

Чтобы правильно получить значение свойства date, используйте следующие строки кода:

db.collection("users").document(user.getuid).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                Date userDate = document.getDate("date");

                //Do what you need to with the userDate object
            }
        }
    }
});

Таким образом, имея объект userDate, вы можете сравнить его с любым другим Date объект, который вы хотите.

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