提问人:Arnav Bose 提问时间:3/17/2023 最后编辑:AnonymousArnav Bose 更新时间:3/17/2023 访问量:75
将字符串转换为 LocalDate [duplicate] 时出现问题
Issue With Converting String to LocalDate [duplicate]
问:
我正在尝试使用 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?
答:
3赞
Menuka Ishan
3/17/2023
#1
在您的 Code Pattern 中,像 Jun 一样是三个字母的月份。如果要解析 ,则模式应为 yyyy-MM-dd。DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.US);
dd-MMM-yyyy
2018-04-16
请参考示例代码
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);
评论
String date
yyyy-MM-dd
dd-MMM-yyyy
date
yyyy-MM-dd
LocalDate localDate