3

这是我用来使用 Instant.parse 解析字符串的代码,

String date = "2018-05-01T00:00:00";
Instant.parse(date)

并低于错误

java.time.format.DateTimeParseException: Text '2018-05-01T00:00:00' could not be parsed at index 19
        at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
        at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
        at java.time.Instant.parse(Instant.java:395)

我不能使用其他Instant所以只能寻找解决方案!

4

1 回答 1

6

Instant.parse将只接受ISO INSTANT 格式的字符串

从 2007-12-03T10:15:30.00Z 等文本字符串中获取 Instant 的实例。

该字符串必须表示 UTC 中的有效瞬间,并使用 DateTimeFormatter.ISO_INSTANT 进行解析。

但是您拥有的 String 代表LocalDateTime,因此将其解析为LocalDateTime然后转换为Instant

ISO-8601 日历系统中没有时区的日期时间,例如 2007-12-03T10:15:30。

LocalDateTime dateTime = LocalDateTime.parse(date);
Instant instant = dateTime.atZone(ZoneId.of("America/New_York")).toInstant();
于 2020-04-24T13:26:33.743 回答