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
.
我从打开的 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
.