Java方法中的时间是如何设置的?

Java方法中的时间是如何设置的?,java,android,Java,Android,在我的android应用程序中,在获得一些验证后,将运行Been true postDescription()方法。 在onDataChange方法中,我创建了hashmap,在其中添加了日期和时间。 并尝试在firebase数据库中的Posts节点内创建一个新节点。 现在假设,(我可能错了,我花了大约百万秒)如果互联网连接比postsMAP(HasMap)和PostRef中使用的时间慢得多,那么child(当前用户ID+SaveCurrentDate+SaveCurrentTime)是否总是相

在我的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
的当前实现以微秒而非纳秒捕捉当前时刻。