在 Java 中将日期“2020-05-22T12:51:20.765111Z”解析为 Instant

Mat*_*ley 0 java datetime

如何"2020-05-22T12:51:20.732111Z"在 Java 中解析为 Instant?

我用了:

LocalDateTime.parse(
              startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US))
          .atZone(ZoneId.of("America/Toronto"))
          .toInstant()
Run Code Online (Sandbox Code Playgroud)

但有错误:

Exception in thread "main" java.time.format.DateTimeParseException: Text '2020-05-22T12:51:20.732111Z' could not be parsed at index 24
    at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
    at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
    at java.time.LocalDateTime.parse(LocalDateTime.java:492)
    at Instant.Main.main(Main.java:54)
Run Code Online (Sandbox Code Playgroud)

Lin*_*ica 7

使用Instant#parse(String)

Instant i = Instant.parse("2020-05-22T12:51:20.732111Z");
Run Code Online (Sandbox Code Playgroud)

如果您想将其转换为您的时区:

ZonedDateTime z = i.atZone(ZoneId.of("America/Toronto"));
Run Code Online (Sandbox Code Playgroud)

打印它产生:

2020-05-22T08:51:20.732111-04:00[America/Toronto]
Run Code Online (Sandbox Code Playgroud)