editText中的datPicker格式错误



我有一个日期选择器,当我从中获取日期时,我想在editText中显示它,它的格式错误。例如,我2020年1月我选择。但内部文本编辑它显示的是2020/0/1,而不是2020/01/01

开放日期选取器:

new SpinnerDatePickerDialogBuilder()
.context(AddProjectActivity.this)
.callback(AddProjectActivity.this)
.spinnerTheme(R.style.NumberPickerStyle)
.showTitle(true)
.showDaySpinner(true)
.defaultDate(2017, 0, 1)
.maxDate(2100, 0, 1)
.minDate(2020, 0, 1)
.build()
.show();
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
meEdtDate.setText(year + "/" + monthOfYear + "/" + dayOfMonth);
date = getDate(year, monthOfYear, dayOfMonth);
}
private Date getDate(int year, int monthOfYear, int dayOfMonth) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, monthOfYear, dayOfMonth);
return calendar.getTime();
}

设置要编辑的日期文本:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
String dateStr = simpleDateFormat.format(projectEntity.getDate());
meEdtDate.setText(dateStr);

这里有一个使用当前包java.time中的类进行日期处理的解决方案。

你可以创建一个LocalDate从年,月和日像这个

private static LocalDate getDate(int year, int monthOfYear, int dayOfMonth) {
return LocalDate.of(year, monthOfYear, dayOfMonth);
}

然后将其格式化为类似的字符串

LocalDate date = getDate(2020, 1, 1);
String dateString = date.format(DateTimeFormatter.ofPattern("yyyy/MM/dd"));

最新更新