" + DateTimeFormatter.ofPattern("EEE").format(LocalDate-6ren">
gpt4 book ai didi

Java8 LocalDate 解析异常

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:53 24 4
gpt4 key购买 nike

我正在对 LocalDate 中的字符串进行简单解析:

log.debug("----->" + DateTimeFormatter.ofPattern("EEE").format(LocalDateTime.now()));
log.debug("--->" + LocalDate.parse("lun",DateTimeFormatter.ofPattern("EEE",Locale.ITALY)));

不幸的是,这段代码给出了这个异常:

java.time.format.DateTimeParseException: Text 'lun' could not be parsed: Unable to obtain LocalDate from TemporalAccessor: {DayOfWeek=1},ISO of type java.time.format.Parsed
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1919)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1854)
at java.time.LocalDate.parse(LocalDate.java:400)
at it.Main.main(Main.java:60)
... 11 more
Caused by: java.time.DateTimeException: Unable to obtain LocalDate from TemporalAccessor: {DayOfWeek=1},ISO of type java.time.format.Parsed
at java.time.LocalDate.from(LocalDate.java:368)
at java.time.LocalDate$$Lambda$15/42768293.queryFrom(Unknown Source)
at java.time.format.Parsed.query(Parsed.java:226)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1850)
... 13 more
Exception running application it.Main

事实很奇怪。事实上,数字日期和连贯模式都有效。在我使用 java.util.Date 和相同的模式之前,一切都没有问题。

关于这个问题,你有什么提示吗?

谢谢

最佳答案

LocalDate 应该表示实际日期 - 例如,您只能传递无法翻译成正确的 26-May-2014 的日期名称(星期一)。

如果你只想解析星期几,你可以使用:

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("EEE", Locale.ITALY);
DayOfWeek day = DayOfWeek.from(fmt.parse("lun"));

关于Java8 LocalDate 解析异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23873200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com