editText 中错误的 datePicker 格式

Wrong datPicker format in editText

我有一个 datePicker,当我从它获取日期时,我想在 editText 中显示它,它的格式错误。 例如,我 一月 / 01/2020 我选择。 但是里面的文本编辑 它显示 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);
}

然后像这样格式化成String

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