Android 日期选择器对话框,用于仅选择下一个 10 年日期



Android DatePicker dialog仅选择下一个10 year date

有日期选择器对话框,在其中我只想选择future date(下一个 10 年)并阻止选择过去的日期。下面是我的代码,它避免选择过去的日期,但我也只想显示下一个 10 年的日期。

try {
    dateFormatter = new SimpleDateFormat("MM/yy", Locale.US);
    edtMonth.setOnClickListener(this);
    Calendar newCalendar = Calendar.getInstance();
    datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            Calendar newDate = Calendar.getInstance();
            newDate.set(year+2, monthOfYear, dayOfMonth);
            edtMonth.setText(dateFormatter.format(newDate.getTime()));
        }
    },newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
    // it is used for prevent old date selection.
    datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
    datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()+2);
} catch (Exception e) {
    e.printStackTrace();
}

提前谢谢。

要仅显示从今天起的 10 年,您必须将MinDate设置为 System.currentTimeMillis() 并将MaxDate设置为 CureentTimeMillis + Next 10 Year Millis 并将此值添加到您的MaxDate中,如下所示。

今天setMinDate

  datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis());

今天setMaxDate

datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis() + 10 year Millis);

试试这个

     Calendar cal = Calendar.getInstance();
     cal.setTime(new Date());
     cal.add(Calendar.YEAR, 10);
     Date newDate = cal.getTime();
     datePicker.getDatePicker().setMinDate(System.currentTimeMillis());
     datePicker.getDatePicker().setMaxDate(newDate.getTime());

相关内容

  • 没有找到相关文章

最新更新