java - Java 方法中如何设置时间?

标签 java android

在我的 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/

相关文章:

java - 是否可以在类的方法中 @InjectMocks 到临时对象实例中?

java - Eclipse IDE 显示 JPA 中复合主键类的错误

android - 单击按钮时如何将前置摄像头设置为默认

通过元数据搜索 mp4 视频的 Android 应用程序

java - 密码解密问题 : javax. crypto.IllegalBlockSizeException:解密中最后一个 block 不完整

android - 为 Google Cast 注册应用程序

java - 移动视频流服务器

java - 预期为BEGIN_OBJECT,但在第1行第6列处为STRING

java - 解决 Idea 中使用 activator new 生成的项目的依赖关系

android - 在 WorkManager 中需要上下文