Fatal Exception: java.lang.IllegalArgumentException
Time not between Wed Sep 09 19:07:07 JST 2015 and Wed Jun 01 19:07:07 JST 2016
こんなクラッシュレポートが発生していました。
datePicker.setMaxDateとdatePicker.setMinDateでの範囲に誤りがある。
調べてみると、Calendarクラスで日付だけセットしても時分秒ミリ秒でズレが残ってました。
なので、日付の指定の他にMinDateには0時0分0秒00、MaxDateには23時59分59秒99というような範囲を設定する必要があります。
//MaxDateの設定
Calendar maxCal = Calendar.getInstance();
maxCal.add(Calendar.MONTH, 6); //6ヶ月後
maxCal.set(Calendar.HOUR_OF_DAY, maxCal.getMaximum(Calendar.HOUR_OF_DAY));
maxCal.set(Calendar.MINUTE, maxCal.getMaximum(Calendar.MINUTE));
maxCal.set(Calendar.SECOND, maxCal.getMaximum(Calendar.SECOND));
maxCal.set(Calendar.MILLISECOND, maxCal.getMaximum(Calendar.MILLISECOND));
datePicker().setMaxDate(maxCal.getTimeInMillis());
//MinDateの設定
Calendar minCal = Calendar.getInstance(); // 本日
minCal.set(Calendar.HOUR_OF_DAY, minCal.getMinimum(Calendar.HOUR_OF_DAY));
minCal.set(Calendar.MINUTE, minCal.getMinimum(Calendar.MINUTE));
minCal.set(Calendar.SECOND, minCal.getMinimum(Calendar.SECOND));
minCal.set(Calendar.MILLISECOND, minCal.getMinimum(Calendar.MILLISECOND));
datePicker().setMinDate(minCal.getTimeInMillis());