英文:
Wrong datPicker format in editText
问题
我有一个日期选择器(datePicker),我想在从中获取日期时在编辑框(editText)中显示它,但格式不对。
例如,我选择了 1 月 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 + 1) + "/" + 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);
英文:
I have a datePicker that I want to display in the editText when I take the date from it, it has the wrong format.
For example, I
Jan / 01/2020
I choose.
But inside text editing
It shows 2020/0/1 instead of 2020/01/01
open datePicker:
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();
    }
set date to editText:
 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
            String dateStr = simpleDateFormat.format(projectEntity.getDate());
            meEdtDate.setText(dateStr);
答案1
得分: 0
这是使用当前包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"));
英文:
Here is a solution using classes from the current package, java.time, for date handling.
You can create a LocalDate from year, month and day like this
private static LocalDate getDate(int year, int monthOfYear, int dayOfMonth) {
    return LocalDate.of(year, monthOfYear, dayOfMonth);
}
And then format it into a String like this
LocalDate date = getDate(2020, 1, 1);
String dateString = date.format(DateTimeFormatter.ofPattern("yyyy/MM/dd"));
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论