问题描述
我尝试了下面的代码,但无法得到我想要的结果。
MaterialDatePicker.Builder<Pair<Long,Long>> builder = MaterialDatePicker.Builder.daterangePicker();
builder.setTitleText("Select A Date");
final MaterialDatePicker<Pair<Long,Long>> materialDatePicker = builder.build();
date_picker.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
materialDatePicker.show(getActivity().getSupportFragmentManager(),"DATE_PICKER");
}
});
materialDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener<Pair<Long,Long>>() {
@Override
public void onPositiveButtonClick(Pair<Long,Long> selection) {
Long start = selection.first;
Calendar start_cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
start_cal.setTimeInMillis(start);
SimpleDateFormat simpleDateFormat_start = new SimpleDateFormat("YYYY-MM-DD");
start_date = simpleDateFormat_start.format(start_cal.getTime());
Long end = selection.second;
Calendar end_cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
end_cal.setTimeInMillis(end);
SimpleDateFormat simpleDateFormat_end = new SimpleDateFormat("YYYY-MM-DD");
end_date = simpleDateFormat_end.format(end_cal.getTime());
String final_text = start_date + " to " + end_date;
date_picker.setText(final_text);
Log.e("Check65","Date : " + final_text);
}
});
我想要 开始日期:2021-01-01 结束日期:2021-02-02
但我明白了 开始日期:2021-01-01 结束日期:2021-02-32
解决方法
在您的 SimpleDateFormat
中,您应该使用 YYYY-MM-dd
而不是 YYYY-MM-DD
,因为大写的 DD 表示一年中的第几天,而您需要一个月中的第几天。 For reference