首页 > 解决方案 > Java中的日期格式化为特定格式

问题描述

我从开放 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:无法在索引 4 处解析文本“2021-04-28”

如果我从开放 API 中提取的数据是,20210426那么此方法可以正常工作并返回4/28/2021.

标签: javadatejava-time

解决方案


您的日期看起来像 anISO_LOCAL_DATE而不是BASIC_ISO_DATE,因此您可以使用

LocalDate apiDate = LocalDate.parse(transDate);

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


推荐阅读