在java.time中格式化日期

时间:2014-08-07 23:08:42

标签: java datetime-format java-time

我正在尝试格式化日期,格式为05051988。我想使用LocalDate格式化下一个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

1 个答案:

答案 0 :(得分: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);
}