Java android中的出生日期问题

Java android中的出生日期问题,java,android,Java,Android,我在用户注册中使用以下代码作为出生日期,但当使用该代码时,出生月份会少一个,例如出生月份是9月,它在数据库中注册的出生月份是8月,该出生日期以数字形式注册,格式是dd/mm/yyyy 我想要这个月的准确度。请协助 public void showDateDialog() { Calendar cal = Calendar.getInstance(); final int day = cal.get(Calendar.DAY_OF_MONTH);

我在用户注册中使用以下代码作为出生日期,但当使用该代码时,出生月份会少一个,例如出生月份是9月,它在数据库中注册的出生月份是8月,该出生日期以数字形式注册,格式是dd/mm/yyyy

我想要这个月的准确度。请协助

public void showDateDialog() {

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

        DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() {

            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

                if (day < 10 && monthOfYear < 10)
                    date = "0" + dayOfMonth + "/0" + monthOfYear + "/" + year;


                else if (day < 10 && monthOfYear > 10)
                    date = "0" + dayOfMonth + "/" + monthOfYear + "/" + year;

                else if (day > 10 && monthOfYear < 10)
                    date = dayOfMonth + "/0" + monthOfYear + "/" + year;

                else
                    date = dayOfMonth + "/" + monthOfYear + "/" + year;

                dateOfBirth.setText(date);

            }
        };

        DatePickerDialog dpDialog = new DatePickerDialog(this, listener, year, month, day);
        dpDialog.show();

    }
public void showDateDialog(){
Calendar cal=Calendar.getInstance();
final int day=cal.get(日历日期,每月的第天);
int month=cal.get(日历月);
int year=cal.get(日历年);
DatePickerDialog.OnDateSetListener侦听器=新建DatePickerDialog.OnDateSetListener(){
@凌驾
公共void onDateSet(日期选择器视图,整数年,整数月,整数月){
如果(日<10日和月<10日)
日期=“0”+月日+”/0”+月日+“/”+年;
如果出现其他情况(10日和10月)
日期=“0”+月日+“/”+月日+“/”+年;
否则,如果(一年中的第10天和第10个月)
日期=月日+“/0”+月日+“/”+年;
其他的
日期=月日+“/”+月日+“/”+年;
出生日期。setText(日期);
}
};
DatePickerDialog dpDialog=新建DatePickerDialog(此,侦听器,年,月,日);
dpDialog.show();
}

日历计数月份从0到11


因此,您可以得到一个月的差异。因此您总是添加1。

您的代码的哪一部分与Firebase相关?不幸的是,
日历使用基于零的月份,即一月为0,二月为1。。。。建议不要再使用该类,
java.time
包中的类更多appropriate@AlexMamo实际上我使用的是firebase firestore数据库,这就是我提到的原因it@Ramneek大家好,欢迎!请仅在与问题相关的情况下添加标签,而不是在应用程序中使用特定技术时。请参阅或(或常量及其示例)
int month = cal.get(Calendar.MONTH) + 1