gpt4 book ai didi

java - 如果我在数据库中将时间存储为 ServerValue.TIMESTAMP,如何从 FirebaseFirestore 检索 RecyclerView 中的日期和时间

转载 作者:行者123 更新时间:2023-12-02 11:36:45 24 4
gpt4 key购买 nike

我正在制作一个应用程序,用户可以在其中发布信息,并且在发布时我通过使用 Firestore 数据库中的 ServerValue.TIMESTAMP 来节省发布时间。

问题是时间被保存在数据库中作为 map 这样的

time:
.sv : "timestamp"

这是我在 Firestore 数据库中的图片 in the rightmost column you can see how my time is getting saved in the database

现在我想提取人类可读的日期和时间以在 RecyclerView 中显示给用户。

这是我的模型类,我想通过它获取时间,但尚未包含任何数据成员,因为我不知道如何完成它。

public class PostDisplayModel extends TransferId{

public String teacherName;
public String topic;

PostDisplayModel(){}

public PostDisplayModel(String teacherName, String topic) {
this.teacherName = teacherName;
this.topic = topic;
}

public String getTeacherName() {
return teacherName;
}

public void setTeacherName(String teacherName) {
this.teacherName = teacherName;
}

public String getTopic() {
return topic;
}

public void setTopic(String topic) {
this.topic = topic;
}
}

下面是我的适配器类

public class PostDisplayAdapter extends RecyclerView.Adapter<PostDisplayAdapter.ViewHolder> {

Context context;
List<PostDisplayModel> postsList;

PostDisplayAdapter(Context context,List<PostDisplayModel> postsList){
this.postsList = postsList;
this.context = context;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.post_display_blueprint,parent,false);
return new ViewHolder(view);
}

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {

holder.headline.setText(postsList.get(position).getTopic());
holder.uploaderName.setText(postsList.get(position).getTeacherName());

final String id = postsList.get(position).id;
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

Intent intent = new Intent(context,PostDisplayActivity.class);
intent.putExtra("id",id);
context.startActivity(intent);

}
});
}

@Override
public int getItemCount() {
return postsList.size();
}

class ViewHolder extends RecyclerView.ViewHolder{

View mView;
public TextView uploaderName, headline;
public TextView time; //this is the textview in which i want the time to get displayed

public ViewHolder(View itemView) {
super(itemView);
mView = itemView;

uploaderName = mView.findViewById(R.id.uploader_name);
headline = mView.findViewById(R.id.headline);
time = mView.findViewById(R.id.time); //getting id of the time textview

}
}
}

我想要该时间戳的正确格式,例如 TextView 中的 yyyy-MM-dd hh:mm:ss,我从回收器 View 中正确获取所有其他数据。

任何形式的建议/帮助将不胜感激。

提前致谢。

最佳答案

发生这种情况是因为您将时间戳设置为ServerValue.TIMESTAMP。当您使用 Firebase 实时数据库时,这是正确的方法。如果是 Cloud Firestore,您需要将其设置为 FieldValue.serverTimestamp()

<强> This 是您使用模型类在 Cloud Firestore 数据库中设置 TIMESTAMP 的正确方法。

关于java - 如果我在数据库中将时间存储为 ServerValue.TIMESTAMP,如何从 FirebaseFirestore 检索 RecyclerView 中的日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48880793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com