微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 DatePickerDialog 中选择的日期发送到 Firebase?

如何解决如何将 DatePickerDialog 中选择的日期发送到 Firebase?

我使用 DatePickerDialog 通过单击 TextView 从用户获取所选日期。但问题是我如何将该值(日期)从 TextView 发送到 Firebase?日期可以转成字符串吗?

TextView startDate;
DatePickerDialog.OnDateSetListener startDateDateSetListener;


startDate.setonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Calendar cal = Calendar.getInstance();
            cal.add(Calendar.DATE,-1);

            int year = cal.get(Calendar.YEAR);
            int month = cal.get(Calendar.MONTH);
            int day = cal.get(Calendar.DAY_OF_MONTH);

            DatePickerDialog dialog = new DatePickerDialog(leaveForm.this,android.R.style.Theme_Holo_Light_Dialog_MinWidth,startDateDateSetListener,year,month,day);
            dialog.getwindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

            dialog.getDatePicker().setMinDate(cal.getTimeInMillis());
            
            dialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
            dialog.show();
        }
    });

    startDateDateSetListener = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker,int year,int month,int day) {
            month = month + 1;
            Log.d(TAG,"onDateSet: dd/mm/yyy: " + day + "/" + month + "/" + year);

            String date = day + "/" + month + "/" + year;
            startDate.setText(date);
        }
    };

private void applyLeave() {
    String leave_type = leaveType.getSelectedItem().toString(); //Spinner
    
    String start_date = startDate.getText().toString();

    leavedetails = new leaveDetails(leave_type,start_date);

    progressBar.setVisibility(View.VISIBLE);
    reference.child(userID).child("leaveRequest").push().setValue(leavedetails).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                Toast.makeText(leaveForm.this,"Leave Request Sent!",Toast.LENGTH_LONG).show();
                progressBar.setVisibility(View.GONE);
            } else {
                Toast.makeText(leaveForm.this,"Leave Request Failed!",Toast.LENGTH_LONG).show();
                progressBar.setVisibility(View.GONE);
            }
        }
    });
}

我尝试使用 String start_date = startDate.getText().toString(); ,但没有成功。

解决方法

我建议将其存储为时间戳,然后在需要时将其转换回日期和时间。

此示例为您提供日期和时间,但如果您想获得该日期的午夜,则只需将最后三个参数保留为“0”。

Calendar calendar = Calendar.getInstance();
calendar.set(picker.getYear(),picker.getMonth(),picker.getDayOfMonth(),picker.getHours(),picker.getMinutes(),picker.getSeconds());
date = Long.toString(calendar.getTimeInMillis());

这也将确保您可以轻松地将其转换为您将来可能需要的任何时区。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?