当前位置: 首页 > 面试题库 >

无法将字符串解析为LocalDate(Java 8)

夏锐藻
2023-03-14
问题内容

我的输入是以2015年7月1日格式为“
01-07-2015”的日期的字符串表示形式。我正在尝试将其解析为一个java.time.LocalDate变量:

final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("dd-MM-YYYY");
final String input = "01-07-2015";
final LocalDate localDate = LocalDate.parse(input, DATE_FORMAT);

基于DateTimeFormatterJavaDoc,我希望它能起作用。但是,我收到了一条非常友好和有用的信息:

由以下原因引起:java.time.DateTimeException:无法从TemporalAccessor获取LocalDate:{DayOfMonth
= 1,MonthOfYear = 7,WeekBasedYear [WeekFields [MONDAY,4]] =
2015},类型为java.time.format.Parsed的ISO

我不太明白这个异常告诉我什么。谁能解释我怎么了?


问题答案:

对于一年,您必须使用小写的y:

final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("dd-MM-yyyy");

大写字母Y用于星期。有关更多详细信息,请参见DateTimeFormatter的javadoc。



 类似资料:
  • 我的输入是2015年7月1日日期的字符串表示形式,格式为“01-07-2015”。我试图将其解析为变量: 基于JavaDoc,我希望这能起作用。然而,我收到了一条非常友好和有益的信息: 原因:java.time.DateTimeException:无法从TemporalAccessor获取LocalDate:{DayofMonth=1,MonthofYear=7,WeekBasedYear[Wee

  • 我试图用localdate解析以下字符串:“04 Aug 2015”。 在尝试了DateTimeFormatters的一些变体之后,我在SO中寻找答案,并发现answer中给出的一些解析示例对我不起作用。经过进一步的研究,我发现Java14不能解析包含字符串月份的日期,如“jul”、“feb”。但在Java8&10中,它工作得完美无缺。 引发的异常是: 下面是在Java8/10上成功打印并在Jav

  • 问题内容: 我想将日期字符串解析为日期。我在寻找其他问题,但没有找到答案。 错误消息是java.text.ParseException:而且我不知道怎么了。 你能帮我吗。提前致谢。 编辑:好的。我将其翻译成英文,但是我仍然遇到同样的问题。我不想更改输入,因为它来自邮件数据库。还有其他想法吗? 我发现了问题。我是瞎子 来自数据库的St是,不是 谢谢。 问题答案: 在德语中,“欧洲中部时间”是“Mit

  • 我想将转换为,但由于某种原因无法转换。

  • 我想解析的字符串类型是:“36/2017”,其中36是一年中的一周,2017是一年。 我的代码: 我添加了一个默认日期。 我有这个信息: 任何想法?谢谢你!