在我的 Android 应用程序中,经过一些验证后,postDescription() 方法将运行。 在 onDataChange 方法中,我创建了 HashMap ,其中添加了日期和时间。 并尝试在 Firebase 数据库中的 Posts 节点内创建一个新节点。 现在假设,(我可能是错的,我花了大约几毫秒)如果互联网连接比 postsMAP(HasMap) 和 PostRef.child(current_User_ID+SaveCurrentDate+SaveCurrentTime) 中使用的时间慢得多,则将始终是相同的字符串?
private void postDescription()
{
UserRef.child(current_User_ID).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
Calendar CalForDate=Calendar.getInstance();
SimpleDateFormat CurrentDate=new SimpleDateFormat("dd-MM-yyyy");
String SaveCurrentDate=CurrentDate.format(CalForDate.getTime());
Calendar CalForTime=Calendar.getInstance();
SimpleDateFormat CurrentTime=new SimpleDateFormat("hh:mm:ss aa");
String SaveCurrentTime=CurrentTime.format(CalForTime.getTime());
HashMap postsMAP=new HashMap();
postsMAP.put("date",SaveCurrentDate);
postsMAP.put("time",SaveCurrentTime);
postsMAP.put("description",Description);
PostRef.child(current_User_ID+SaveCurrentDate+SaveCurrentTime).updateChildren(postsMAP)
.addOnCompleteListener(new OnCompleteListener()
{
@Override
public void onComplete(@NonNull Task task)
{
if(task.isSuccessful())
{ Toast.makeText(PostActivity.this, "updating successfully", Toast.LENGTH_SHORT).show();
progressDialog.dismiss();
}
else
{
Toast.makeText(PostActivity.this, "error occur while posting", Toast.LENGTH_SHORT).show();
progressDialog.dismiss();
}
}
});
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
最佳答案
您应该仅以毫秒为单位节省时间,因为精度更高。如果您使用时间戳添加多个条目,建议使用以毫秒为单位的时间,以避免重复的时间条目。您可以为此使用 System.currentTimeMillis() 。 示例 -
long currentTime = System.currentTimeMillis();
关于java - Java 方法中如何设置时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56827345/