MaterialDateTimePicker库在DateTime应用程序中用作DateTime选择器。需要禁用之前和以后的日期,以便在日历中只显示3天,即。昨天,今天和明天。一切正常,除了选定的日期是一个月前。例如,在选择今天(16-05-2017年)时,它会提前一个月(15-04-2017年)。它显示的是一个月前的日期,而不是返回的一天。代码:
calendar = Calendar.getInstance();
Year = calendar.get(Calendar.YEAR) ;
Month = calendar.get(Calendar.MONTH);
Day = calendar.get(Calendar.DAY_OF_MONTH);
final Calendar maxDate = Calendar.getInstance();
maxDate.set(Calendar.DAY_OF_MONTH, maxDate.get(Calendar.DAY_OF_MONTH) + 1);
maxDate.set(Calendar.MONTH, Month);
maxDate.set(Calendar.YEAR, Year);
final Calendar minDate = Calendar.getInstance();
minDate.set(Calendar.DAY_OF_MONTH, Day - 1);
minDate.set(Calendar.MONTH, Month);
minDate.set(Calendar.YEAR, Year);
mDojBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
datePickerDialog = DatePickerDialog.newInstance(TrainStatus.this, Year, Month, Day);
datePickerDialog.setThemeDark(false);
datePickerDialog.showYearPickerFirst(false);
datePickerDialog.setAccentColor(Color.parseColor("#009688"));
datePickerDialog.setTitle("Select Date");
datePickerDialog.setMinDate(minDate);
datePickerDialog.setMaxDate(maxDate);
datePickerDialog.show(getFragmentManager(), "DatePickerDialog");
}
});
@Override
public void onDateSet(DatePickerDialog view, int Year, int Month, int Day) {
dateSelected = String.valueOf(Year)+String.valueOf(Month)+String.valueOf(Day);
}任何帮助都是appreciated.Thanks预先提供的。
发布于 2017-05-16 11:32:41
You should add month +1. because here month starts from zero(0).
dateSelected = String.valueOf(Year)+String.valueOf(Month +1)+String.valueOf(Day);
Or
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
dialog = DatePickerDialog.newInstance(new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
month = monthOfYear;
day = dayOfMonth;
TextView tv = (TextView) v1.findViewById(R.id.txtDate);
tv.setText(new StringBuilder().append(day).append("-")
.append((month + 1)).append("-").append(year));
}
}, yy, mm, dd);
dialog.setMinDate(calendar);发布于 2017-05-16 11:34:46
https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html检查官方文档中的日历类,月份从0开始。这意味着0=一月和11=december。
https://stackoverflow.com/questions/44000237
复制相似问题