使用Instant.parse解析2018-05-01T00:00:00日期时出错

这是我用来使用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以外的其他东西,因此只能寻求解决方案!

评论
  • 疯人愿
    疯人愿 回复

    Instant.parse will only accept the string that are in ISO INSTANT FORMAT

    从文本字符串(例如2007-12-03T10:15:30.00Z)获取Instant实例。      该字符串必须表示UTC中的有效时刻,并使用DateTimeFormatter.ISO_INSTANT进行解析。

    But the String you have represents LocalDateTime, so parse it into LocalDateTime and then convert into Instant

    ISO-8601日历系统中没有时区的日期时间,例如2007-12-03T10:15:30。
    LocalDateTime dateTime = LocalDateTime.parse(date);
    Instant instant = dateTime.atZone(ZoneId.of("America/New_York")).toInstant();