Java方法中的时间是如何设置的?
在我的android应用程序中,在获得一些验证后,将运行Been true postDescription()方法。 在onDataChange方法中,我创建了hashmap,在其中添加了日期和时间。 并尝试在firebase数据库中的Posts节点内创建一个新节点。 现在假设,(我可能错了,我花了大约百万秒)如果互联网连接比postsMAP(HasMap)和PostRef中使用的时间慢得多,那么child(当前用户ID+SaveCurrentDate+SaveCurrentTime)是否总是相同的字符串Java方法中的时间是如何设置的?,java,android,Java,Android,在我的android应用程序中,在获得一些验证后,将运行Been true postDescription()方法。 在onDataChange方法中,我创建了hashmap,在其中添加了日期和时间。 并尝试在firebase数据库中的Posts节点内创建一个新节点。 现在假设,(我可能错了,我花了大约百万秒)如果互联网连接比postsMAP(HasMap)和PostRef中使用的时间慢得多,那么child(当前用户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();
您应该只以毫秒为单位节省时间,因为精度更高。如果要使用时间戳添加多个条目,建议使用以毫秒为单位的时间,以避免重复的时间条目。您可以使用System.currentTimeMillis()进行此操作。 示例-
long currentTime = System.currentTimeMillis();
这不属于我的问题这不属于我的问题如果您想要更精确的解析,请使用
java.time.Instant.now()
并调用toString
获取标准ISO 8601格式的字符串,或者请求一对数字:(a)自1970年第一刻起的整秒UTC(Instant.getEpochSecond
),以及(b)分数秒为纳秒(Instant::getNano
)。鉴于传统计算机时钟硬件的限制,Instant
使用的Clock
的当前实现以微秒而不是纳秒为单位捕获当前时刻。如果您想要更高的分辨率,请使用java.time.Instant.now()
并调用toString
以获取标准ISO 8601格式的字符串,或要求获取一对数字:(a)自1970年第一个UTC时刻起的整秒(Instant.getEpochSecond
),加上(b)以纳秒表示的小数秒(Instant::getNano
)。鉴于传统计算机时钟硬件的限制,Instant
使用的Clock
的当前实现以微秒而非纳秒捕捉当前时刻。