Как установить минимальную дату DatePicker на текущую дату

Я хочу установить минимальную дату, которую пользователь может выбрать в DatePicker, до текущей даты. Я пробовал это:

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

Это дает мне следующее исключение:

 12-01 12:23:31.226: E/AndroidRuntime(10311): Caused by: java.lang.IllegalArgumentException: fromDate: Sat Dec 01 12:23:31 EST 2012 does not precede toDate: Sat Dec 01 12:23:31 EST 2012 

Как мне это сделать?

Ошибка говорит, что вы не можете установить минимальную дату именно сейчас. Попробуйте вычесть второе:

 datePicker.setMinDate(System.currentTimeMillis() - 1000); 

Из исходного кода минимальная дата должна быть до, а не равна текущей дате:

 if (date.before(mMinDate)) { throw new IllegalArgumentException("fromDate: " + mMinDate.getTime() + " does not precede toDate: " + date.getTime()); } 

Поэтому вам просто нужно вычесть достаточное время с этого момента ( System.currentTimeMillis() ) передать date.before(mMinDate) .

Если вы не хотите использовать настраиваемый диалог. Используйте этот код:

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

Проверьте, установлен ли в Android DatePickerDialog минимальный и максимальный код даты .

Вот примеры .

 final Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); DatePickerDialog dpd = new DatePickerDialog(getActivity(),AlertDialog.THEME_TRADITIONAL,this,year, month, day); //Get the DatePicker instance from DatePickerDialog DatePicker dp = dpd.getDatePicker(); //Set the DatePicker minimum date selection to current date dp.setMinDate(c.getTimeInMillis());//get the current day //dp.setMinDate(System.currentTimeMillis() - 1000);// Alternate way to get the current day //Add 6 days with current date c.add(Calendar.DAY_OF_MONTH,6); //Set the maximum date to select from DatePickerDialog dp.setMaxDate(c.getTimeInMillis()); //Now DatePickerDialog have 7 days range to get selection any one from those dates 

Добавление этой строки в ваш fragment DatePicker установит минимальную дату в качестве текущей даты и отключит предыдущие месяцы.

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

Это может помочь вам.

 Calendar cal=Calendar.getInstance(); int year=cal.get(Calendar.YEAR); int month=cal.get(Calendar.MONTH); int day=cal.get(Calendar.DAY_OF_MONTH); int hour=cal.get(Calendar.HOUR_OF_DAY); int min=cal.get(Calendar.MINUTE); datePicker.updateDate(year, month, day); timePicker.setCurrentHour(hour); timePicker.setCurrentMinute(min); 

Попробуй это

 datePicker.setMinDate(new GregorianCalendar.getTimeInMillis()); 

Это отлично сработало для меня. легко и приятно.

 DatePickerDialog dialog = new DatePickerDialog(this, this, Calendar.YEAR,Calendar.MONTH, Calendar.DAY_OF_MONTH); dialog.getDatePicker().setMinDate(Calendar.getInstance().getTimeInMillis()); dialog.show(); 
  • Ограничить загрузку-datepicker только в рабочие дни?
  • Отключить определенные даты из html5 datepicker
  • jQuery datepicker - 2 ввода / текстовые поля и ограничивающий диапазон
  • Jquery datepicker - только день и месяц
  • Ненавязчивая проверка в Chrome не будет проверяться с помощью dd / mm / yyyy
  • Android - OnDateChangedListener - как вы это устанавливаете?
  • Как изменить формат даты в подборщике даты
  • как добавить день к дате с помощью jquery datepicker
  • Twitter Bootstrap Datepicker в модальном окне
  • Как отключить будущие даты в Android date picker
  • Как установить максимальную дату в диалоговом окне datepicker в android?
  • Давайте будем гением компьютера.