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());