0

我正在尝试格式化日期以下列格式给出05051988。我想LocalDate在 next 中使用格式化05 may 1988

我已经创建了私有方法,稍后我将在同一类中使用它来输入文本中的格式化日期。我已经编写了一些代码,但1988-05-05如果我使用,我现在得到了MM,如果我用它替换它,MMM它会给我无法解析的错误消息。

private LocalDate parseDate(){
    LocalDate dateOfBirth = LocalDate.parse(date, DateTimeFormatter.ofPattern("ddMMyyyy"));
    return dateOfBirth;
}

错误:

Exception in thread "main" java.time.format.DateTimeParseException: Text '05051988' could not be parsed at index 2
4

1 回答 1

3

您仍然需要使用“ddMMyyyy”来解析日期。然后在打印时使用“dd MMM yyyy”格式化。

像这样的东西:

String reformat(String dateOfBirth) {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ddMMyyyy");
    DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("dd MMM yyyy");
    LocalDate date = LocalDate.parse(dateOfBirth, fomatter);
    return formatter2.print(date);
}
于 2014-08-07T23:19:29.300 回答