java - 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
.
解决方案
您的日期看起来像 anISO_LOCAL_DATE
而不是BASIC_ISO_DATE
,因此您可以使用
LocalDate apiDate = LocalDate.parse(transDate);
没有DateTimeFormatter
,因为LocalDate.parse
默认使用ISO_LOCAL_DATE
.
推荐阅读
- javascript - 有没有办法在没有 .then 的情况下每次都解开一个承诺?
- scala - 组合地图的所有值,其中每个值都是一个数据框
- javascript - 如何在移相器 3 中以随机延迟循环函数回调?
- flutter - Flutter for web - 我在哪里放置图像以使用 AssetImage?
- swift - 禁止直接赋值的可变属性 - Swift
- haskell - 在函数调用之前附加值时出现“函数中的非详尽模式”错误
- javascript - 如何分别为两个变量设置动画计数
- r - 声明多个函数的问题
- apache-spark - 理解 Spark 解释:Collect vs Global vs Local Limit
- angular - 将来自 API 的 JSON 数组转换为 Angular 中的 JSON 对象