DateTimeParseException:无法解析文本:无法从 TemporalAccessor 获取 LocalDateTime
Posted
技术标签:
【中文标题】DateTimeParseException:无法解析文本:无法从 TemporalAccessor 获取 LocalDateTime【英文标题】:DateTimeParseException: Text could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor 【发布时间】:2017-09-29 16:10:38 【问题描述】:LocalDateTime.parse("2017-02-02 08:59:12", DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"));
打印错误:
java.time.format.DateTimeParseException: Text '2017-02-02 08:59:12' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: MinuteOfHour=59, NanoOfSecond=0, SecondOfMinute=12, MicroOfSecond=0, MilliOfSecond=0, HourOfAmPm=8,ISO resolved to 2017-02-02 of type java.time.format.Parsed
Accoeding 消息看起来所有值都解析正确,但无论如何我看到了错误。
如何让它工作?
【问题讨论】:
LocalDate
或 LocalDateTime
?您在格式化程序中指明小时等
我工作得很好!
异常表示你尝试解析为LocalDateTime
。您在问题中的代码有效
抱歉,各位,已更正
错误消息中要注意的详细信息是HourOfAmPm=8
。它没有说一天中的小时......
【参考方案1】:
我只能重现您在尝试解析为 LocalDateTime
时遇到的异常,所以我认为这就是您想要的。
您的错误是使用 hh
(clock-hour-of-am-pm) 而不是 HH
(hour-of-day)。这有效:
LocalDateTime ldt = LocalDateTime.parse("2017-02-02 08:59:12", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(ldt);
然后打印:
2017-02-02T08:59:12
【讨论】:
谢谢,我的错误在于年份模式,我使用基于周的年份YYYY
而不是 yyyy
以上是关于DateTimeParseException:无法解析文本:无法从 TemporalAccessor 获取 LocalDateTime的主要内容,如果未能解决你的问题,请参考以下文章
字符串到 LocalDateTime 的转换:java.time.format.DateTimeParseException [重复]
DateTimeParseException could not be parsed at index 0
DateTimeParseException could not be parsed at index 0
fastjson反序列化LocalDateTime失败的问题java.time.format.DateTimeParseException: Text '2019-05-24 13:52:11
fastjson反序列化LocalDateTime失败的问题java.time.format.DateTimeParseException: Text '2019-05-24 13:52:11
fastjson反序列化LocalDateTime失败的问题java.time.format.DateTimeParseException: Text '2019-05-24 13:52:11