DateTimeFormatter class 异常 DateTimeParseException
DateTimeFormatter class exeception DateTimeParseException
我想从 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()));
在doc中:
Number: If the count of letters is one, then the value is output using
the minimum number of digits and without padding.
日期字符串使用 dd/M/yyyy
格式。它将解析像 28/5/2020
和 28/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);
我想从 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()));
在doc中:
Number: If the count of letters is one, then the value is output using the minimum number of digits and without padding.
日期字符串使用 dd/M/yyyy
格式。它将解析像 28/5/2020
和 28/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);