java 将字符串转换为LocalDate时出现问题[重复]

dwbf0jvd  于 2023-03-21  发布在  Java
关注(0)|答案(1)|浏览(210)

此问题在此处已有答案

Parsing LocalDate but getting DateTimeParseException; dd-MMM-uuuu(2个答案)
3天前关闭。
我正在尝试使用LocalDate将字符串日期格式转换为另一种日期格式(dd-MMM-yyyy)。

String date = "2018-04-16";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.US);
LocalDate localDate = LocalDate.parse(date, formatter);

我在DateTimeFormatter对象中使用和不使用Locale.US的情况下尝试了这段代码。无论哪种方式,它都返回此异常:

java.time.format.DateTimeParseException: Text '2018-04-16' could not be parsed at index 2

有没有一种方法可以使用LocalDate或我应该使用SimpleDateFormat来处理此日期转换?

ijnw1ujt

ijnw1ujt1#

在你的代码中,DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.US);模式dd-MMM-yyyy代表三个字母的月份,比如Jun。如果你想解析像2018-04-16这样的字符串,模式应该是yyyy-MM-dd。
请参考示例代码

String date = "2018-04-16";
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(date, inputFormatter);

更新-针对您在评论中提出的问题

在将String转换为本地日期之后,下面的代码应该可以完成这个任务。

DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.US);
String outputDate = localDate.format(outputFormatter);

相关问题