studio personalizar fecha example android android-datepicker

personalizar - fecha en android studio



Cómo establecer la fecha mínima de DatePicker en la fecha actual (7)

Quiero establecer la fecha mínima que el usuario puede elegir en un DatePicker a la fecha actual. He intentado esto:

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

Eso me da la siguiente excepción:

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

¿Cómo hago esto?


Agregar esta línea a su Fragmento DatePicker establecerá la fecha mínima como fecha actual y deshabilitará los meses anteriores.

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


Compruebe que el DatePickerDialog de Android establezca el código de fecha mínimo y máximo .

Aquí están los examples .

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


El error dice que no puede establecer la fecha mínima exactamente ahora. Intenta restar un segundo:

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

Desde el código fuente, la fecha mínima debe ser anterior, no igual a, la fecha actual:

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

Entonces, simplemente necesita restar suficiente tiempo a partir de ahora ( System.currentTimeMillis() ) pass date.before(mMinDate) .


Esto funcionó perfectamente para mí. fácil y agradable.

DatePickerDialog dialog = new DatePickerDialog(this, this, Calendar.YEAR,Calendar.MONTH, Calendar.DAY_OF_MONTH); dialog.getDatePicker().setMinDate(Calendar.getInstance().getTimeInMillis()); dialog.show();


Esto puede ayudarte.

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


Prueba esto

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


Si no quieres usar un diálogo personalizado. Use este código de una sola línea:

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