【问题标题】:Wrong datPicker format in editTexteditText 中的 datePicker 格式错误
【发布时间】:2020-10-10 09:28:24
【问题描述】:

我有一个 datePicker,当我从中获取日期时,我想在 editText 中显示它,它的格式错误。 例如,我 1 月 / 2020 年 1 月 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();
    }

将日期设置为editText:

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

【问题讨论】:

    标签: java android datepicker


    【解决方案1】:

    这是一个使用当前包 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"));
    

    【讨论】:

    • 请不要发布这样的cmets,它们完全没有意义。如果有错误,请说出什么错误是什么。
    • 能否请您使用您建议的代码编辑我的代码。
    • java.lang.NoClassDefFoundError: 解析失败:Ljava/time/LocalDate;
    • 是否添加了 java.time.* 的导入?
    • 导入 java.time.LocalDate;导入 java.time.format.DateTimeFormatter;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多