提问人:ghita 提问时间:11/4/2019 更新时间:11/6/2019 访问量:1216
org.threeten.bp.format.DateTimeParseException
org.threeten.bp.format.DateTimeParseException
问:
val dateFormatter= DateTimeFormatterBuilder()
.appendPattern("yyyy-MM-dd")
.toFormatter()
val begin = (LocalDateTime.parse("2019-11-04", dateFormatter).atOffset(ZoneOffset.UTC)
.toInstant()).atZone(ZoneId.of(timeZoneIdentifier))
当我尝试像这样解析日期时,出现以下错误:
无法解析文本“2019-11-04”:无法从 TemporalAccessor 获取 LocalDateTime:DateTimeBuilder[, ISO, null, 2019-11-04, null],键入 org.threeten.bp.format.DateTimeBuilder
答:
0赞
Matheus Lima
11/5/2019
#1
改用,像这样:LocalDate
LocalDateTime
val begin = (LocalDate.parse("2019-11-04", dateFormatter).atOffset(ZoneOffset.UTC)
.toInstant()).atZone(ZoneId.of(timeZoneIdentifier))
但是此调用需要最小 api 26。有关较旧的 API,请参阅此处
评论
0赞
Anonymous
11/6/2019
我无法编译它。我得到 atOffset(ZoneOffset) 方法对于 LocalDate 类型未定义。
0赞
Anonymous
11/6/2019
#2
由于 ISO 8601 格式和其他 java.time 类将 ISO 8601 格式解析为默认格式,因此您不需要任何显式格式化程序。只是这个:2019-11-04
LocalDate
val begin = LocalDate.parse("2019-11-04")
.atStartOfDay(ZoneOffset.UTC)
.withZoneSameInstant(ZoneId.of(timeZoneIdentifier))
假设结果是 。timeZoneIdentifier
Europe/Bucharest
ZonedDateTime
2019-11-04T02:00+02:00[Europe/Bucharest]
不能将字符串解析为 .这不仅需要日期,还需要一天中的时间,如您所知,您的字符串仅包含前者。LocalDateTime
评论