Java 中的日期格式化为特定格式

Date formatting in Java to a specific format

我从打开的 API 中获取的日期是 2021-04-28。我想这样格式化:4/28/2021。以下是我试过的方法:

public String formatDateFetchedFromAPI(String transDate) {
    LocalDate apiDate = LocalDate.parse(transDate, DateTimeFormatter.BASIC_ISO_DATE);
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("M/d/yyyy");
    String actualDate = formatter.format(apiDate);
    return actualDate;
}

这会抛出一条错误消息:

java.time.format.DateTimeParseException: Text '2021-04-28' could not be parsed at index 4

如果我从 open API 中提取的数据是 20210426 那么这个方法就可以正常工作 returns 4/28/2021.

你的日期看起来像 ISO_LOCAL_DATE and not BASIC_ISO_DATE,所以你可以改用

LocalDate apiDate = LocalDate.parse(transDate);

没有DateTimeFormatter,因为LocalDate.parse默认使用ISO_LOCAL_DATE.