为未知的TemporalAccessor解析字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为未知的TemporalAccessor解析字符串相关的知识,希望对你有一定的参考价值。
我正在获取一个具有未知时间(ISO格式的日期,时间或时间戳)的请求参数,并希望将其解析为java.time.temporal.TemporalAccessor
:
- 当字符串代表像
LocalDate
这样的日期时,"2018-02-28"
- 或
LocalDateTime
当字符串表示像"2018-02-28T11:20:00"
这样的时间戳
以下尝试导致DateTimeParseException
:
TemporalAccessor dt = DateTimeFormatter.ISO_DATE_TIME.parseBest(str, LocalDateTime::from, LocalDate::from);
决定字符串的长度或qzxswpoi使用的“T”的出现,在我看来有点hacky。以及尝试一种接一种的格式。
更好的解决方案?
答案
你的问题是DateTimeFormatter
希望有一个时间,顾名思义。在您的情况下,您需要在模式中使用可选部分。
这应该按要求工作:
ISO_DATE_TIME
以上是关于为未知的TemporalAccessor解析字符串的主要内容,如果未能解决你的问题,请参考以下文章
Java:无法从 TemporalAccessor 获取 LocalDate
无法使用Java 8中的DateTimeFormatter和ZonedDateTime从TemporalAccessor获取ZonedDateTime
10hutool实战:TemporalAccessorUtil{TemporalAccessor} 工具类封装
10hutool实战:TemporalAccessorUtil{TemporalAccessor} 工具类封装
Java SE 8 TemporalAccessor.from 与 java.time.Instant 对象一起使用时出现问题