【发布时间】:2021-04-30 14:16:38
【问题描述】:
我从开放 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。
【问题讨论】:
-
您尝试解析的日期根本不是基本的 iso 格式。我建议查看官方文档:docs.oracle.com/javase/8/docs/api/java/time/format/…(查看 Predefined Formatters)-据我所知,您正在尝试使用“ISO 本地日期”格式解析日期。
-
谢谢。你分享的这个链接帮助我找到了解决方案,而不是使用基本的 iso 我使用了 iso loca 日期。再次感谢!
-
所谓的“开放 API”是什么(因为 OP 离开了大楼,其他人可能会插话)?
-
请注意,您应该遵循 Java 命名约定:变量和方法名称以驼峰命名,因此不使用下划线。