android 如何让用户从日期选择器中选择从今天起 10 年之前的日期?

How to allow the user to choose date only before 10 years from today from datepicker in android?

我卡在需要向用户询问生日作为输入的位置。我需要限制用户不能添加 10 年之前的任何日期)。

你可以这样做:

DatePicker datePicker = (DatePicker) findViewById(R.id.event_date);
datePicker.setMinDate(dateTenYearsAgo);

更多信息:

在 datePicker 对话框中尝试使用此代码:

    Calendar c = Calendar.getInstance();
    c.add(Calendar.YEAR, -10);
    long tenYearBack = c.getTimeInMillis();
    datePickerDialog.getDatePicker().setMinDate(tenYearBack);

我想你的意思是用户不能添加任何早于 10 年前的日期,对吧?或者您的用户主要是 10 到 0 岁的孩子?!

由于您的限制日期基于当前日期,因此您必须使用 setMinDate(long date)setMaxDate(long date) 以编程方式设置限制。如您所见,这些方法适用于以毫秒为单位的日期,因此您必须首先敢于以毫秒为单位:

Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, -10);                //Goes 10 Year Back in time ^^
long upperLimit = calendar.getTimeInMillis();    //Get date in millisecond (epoch)

,然后使用上面的方法设置限制:

datePicker.setMaxDate(upperLimit);