设置DatePickerDialog获取IllegalArgumentException的最小日期Fromdate不在toDate之前

时间:2014-07-29 00:41:58

标签: java android

我不确定我做错了什么?什么是fromdate和什么是todate?这是我的代码......

最大日期完美无缺,所以我真的很困惑。在我看来,新的Date()。getTime应该返回正确的值还是其他的东西?

    meetingDateButton.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        DatePickerDialog dpd = new DatePickerDialog(MapActivity.this, new DatePickerDialog.OnDateSetListener() {

                            @Override
                            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                                SimpleDateFormat simpledateformat = new SimpleDateFormat("EEEE");
                                Date date = new Date(year, monthOfYear, dayOfMonth - 1);
                                String dayOfWeek = simpledateformat.format(date);
                                meetingSelectDate.setText(dayOfWeek + " " + (monthOfYear + 1) + "/" + dayOfMonth + "/" + year);
                            }

                        }, mYear, mMonth, mDay);
                        dpd.setTitle("Select Date:");
                        Date maxDate = new Date();
                        maxDate.setTime(new Date().getTime()+(86400000*7));
                        dpd.getDatePicker().setMaxDate(maxDate.getTime());
                        dpd.getDatePicker().setMinDate(new Date().getTime());
                        dpd.show();
                    }
                });

2 个答案:

答案 0 :(得分:30)

dpd.getDatePicker()。setMinDate(new Date()。getTime() - 10000);

这是答案,你必须从某种原因减去一点时间吗?

答案 1 :(得分:1)

您可以获取日历实例,并设置时间。

long minTimeMillis = System.currentTimeMillis() + 7 * 3600000;
final Calendar minDate = Calendar.getInstance();
minDate.setTimeInMillis(minTimeMillis);
minDate.set(Calendar.HOUR_OF_DAY, minDate.getMinimum(Calendar.HOUR_OF_DAY));
minDate.set(Calendar.MINUTE, minDate.getMinimum(Calendar.MINUTE));
minDate.set(Calendar.SECOND, minDate.getMinimum(Calendar.SECOND));
minDate.set(Calendar.MILLISECOND, minDate.getMinimum(Calendar.MILLISECOND));
dialog.getDatePicker().setMinDate(minDate.getTimeInMillis());