Datepicker gives time not between exception

Issue

I’m using a datepicker and want to set the min date to today and the max date to today one year ahead.

I do this like:

datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
            cal.add(Calendar.YEAR, 1);
            datePickerDialog.getDatePicker().setMaxDate(cal.getTimeInMillis());

When I don’t do – 1000 then I get another exception:

java.lang.IllegalArgumentException: fromDate: Sat Apr 11 23:59:59 CEST 2015 does not precede toDate: Sat Apr 11 08:24:19 CEST 2015

thats because the date may not be equal to today. So I extract 1000 ms.

I don’t know how to solve the new exception. I tried to count + 1000 ms on the maxDate but that didn’t solve it.

EDIT:

I create my cal like this:

 cal = Calendar.getInstance();
        datePickerDialog = new DatePickerDialog(getActivity(), this, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DATE));

Solution

I solved the problem as follows:

            cal.set(Calendar.HOUR_OF_DAY, cal.getMinimum(Calendar.HOUR_OF_DAY));
            cal.set(Calendar.MINUTE, cal.getMinimum(Calendar.MINUTE));
            cal.set(Calendar.SECOND, cal.getMinimum(Calendar.SECOND));
            cal.set(Calendar.MILLISECOND, cal.getMinimum(Calendar.MILLISECOND));
            datePickerDialog.getDatePicker().setMinDate(cal.getTimeInMillis());
            cal.add(Calendar.YEAR, 1);
            cal.set(Calendar.HOUR_OF_DAY, cal.getMaximum(Calendar.HOUR_OF_DAY));
            cal.set(Calendar.MINUTE, cal.getMaximum(Calendar.MINUTE));
            cal.set(Calendar.SECOND, cal.getMaximum(Calendar.SECOND));
            cal.set(Calendar.MILLISECOND, cal.getMaximum(Calendar.MILLISECOND));
            datePickerDialog.getDatePicker().setMaxDate(cal.getTimeInMillis());

I just set the start date to the minimum and the end date to the maximum off that day.

Answered By – user1007522

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published