Как добавить метку времени из Firestore в переменную my - PullRequest
0 голосов
/ 13 января 2020

Как добавить метку времени из базы данных firebase в переменную my? Я не могу найти: (

Мне нужно это: ДД.МММ.ГГГГ или ДД.ММ.ГГ

Мой вывод:

2020-01-13 01:55:49.283 16131-16131/com.berkanaslan.instagramclonefirebase I/System.out: Timestamp(seconds=1578781711, nanoseconds=126000000)
2020-01-13 01:55:49.283 16131-16131/com.berkanaslan.instagramclonefirebase I/System.out: Timestamp(seconds=1578780607, nanoseconds=174000000)
2020-01-13 01:55:49.283 16131-16131/com.berkanaslan.instagramclonefirebase I/System.out: Timestamp(seconds=1578776024, nanoseconds=136000000)
2020-01-13 01:55:49.283 16131-16131/com.berkanaslan.instagramclonefirebase I/System.out: Timestamp(seconds=1578769230, nanoseconds=435000000)
2020-01-13 01:55:49.284 16131-16131/com.berkanaslan.instagramclonefirebase I/System.out: Timestamp(seconds=1578769218, nanoseconds=442000000)
2020-01-13 01:55:49.284 16131-16131/com.berkanaslan.instagramclonefirebase I/System.out: Timestamp(seconds=1578769204, nanoseconds=442000000)

Мой ArrayList в Деятельности:

ArrayList<String> userImgDateForProfile;

OnCreate:

    getDataFromFirestoreForProfile();

userImgDateForProfile = new ArrayList<>();
        //RecycleView
        RecyclerView recyclerView = findViewById(R.id.profileRacyclerView);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        profileRecyclerAdapter = new ProfileRecyclerAdapter(userEmailForProfile, userCommentForProfile, userImgUrlForProfile,userImgDateForProfile);
        recyclerView.setAdapter(profileRecyclerAdapter);

getDataFromFirestoreForProfile ():

public void getDataFromFirestoreForProfile() {
    FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
    String profileCheckID = firebaseUser.getEmail();

    CollectionReference collectionReference = firebaseFirestore.collection("Posts");
    collectionReference.whereEqualTo("User_EMail", profileCheckID).orderBy("Upload_Date", Query.Direction.DESCENDING).addSnapshotListener(new EventListener<QuerySnapshot>() {
        @Override
        public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {

            if (e != null) {
                System.out.println(e);
                Toast.makeText(ProfileActivity.this, e.getLocalizedMessage().toString(), Toast.LENGTH_LONG).show();
            }
            if (queryDocumentSnapshots != null) {
                for (DocumentSnapshot snapshot : queryDocumentSnapshots.getDocuments()) {
                    Map<String, Object> data = snapshot.getData();

                    String comment = (String) data.get("User_Comment");
                    String userEmail = (String) data.get("User_EMail");
                    String imgdataurl = (String) data.get("User_Image_Url");
                    String imgDate = (String) data.get("Upload_Date").toString();

                    userCommentForProfile.add(comment);
                    userEmailForProfile.add(userEmail);
                    userImgUrlForProfile.add(imgdataurl);
                    userImgDateForProfile.add(imgDate);

                    System.out.println(imgDate);

                    profileRecyclerAdapter.notifyDataSetChanged();
                }
            }


        }
    });

}

Спасибо всем.

Ответы [ 2 ]

2 голосов
/ 13 января 2020
// You can cast your Firestore document's Timestamp field into a Timestamp object
Timestamp dataTimestamp = (Timestamp) docSnapshot.get("timestamp_field");

// Retrieve a Date from the Timestamp
Date dataDate = dataTimestamp.toDate();

// Define the format your Date should be in
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MMM.yyyy", Locale.getDefault());

// Create a String in the defined format using your Date
String formattedDate = dateFormat.format(dataDate);

Вы можете проверить https://developer.android.com/reference/java/text/SimpleDateFormat для получения дополнительной информации о форматировании с SimpleDateFormat.

0 голосов
/ 13 января 2020

Попробуйте следующее:

  Date date = new Date(1578781711L * 1000);
  DateFormat dateFormat = new SimpleDateFormat("dd MMM yyyy hh:mm:ss zzz");

Вывод:

11 Jan 2020 10:28:31 GMT+00:00

Чтобы получить то, что вы хотите, ДД.ММ.ГГГГ сделайте SimpleDataFormat вот так:

SimpleDateFormat("dd MMM yyyy")

Выход:

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