1

我想从 android 设备中的输入日期获取下一个 3 个月的日期。对于大于 oreo 的版本,我尝试使用 DateTimeFormatter。但我收到此错误“java.time.format.DateTimeParseException: Text '28/5/2020' could not be parsed at index 0”

这是我的输入日期字符串 = 28/5/2020

   String datestring = edittext_enterServiceDate.getText().toString();
                String dd = datestring.substring(0, 2);
                String mm = datestring.substring(3, 4);
                String yyyy = datestring.substring(5, 9);
                String dateString = dd + "/" + mm + "/" + yyyy;
                LocalDate date = LocalDate.parse(dd + "/" + mm + "/" + yyyy);

                DateTimeFormatter df = DateTimeFormatter.ofPattern("dd/MM/yyyy");
                LocalDate  d1 = LocalDate.parse(dateString, df);

                LocalDate returnvalue
                        = d1.plusMonths(Integer.parseInt(monthList.get(position).getStateId()));
                edittext_nextServiceDate.setText(String.valueOf(returnvalue.toString()));
4

1 回答 1

3

文档中:

数字:如果字母数为 1,则使用最小位数输出值且不进行填充。

为您的日期字符串使用格式dd/M/yyyy。它将解析日期字符串28/5/202028/12/2020两者。

DateTimeFormatter df = DateTimeFormatter.ofPattern("dd/M/yyyy");
LocalDate  d1 = LocalDate.parse("28/5/2020", df);
LocalDate  d2 = LocalDate.parse("28/07/2020", df);
LocalDate  d3 = LocalDate.parse("28/12/2020", df);
于 2020-05-28T07:23:10.560 回答