Parse date “2020-05-22T12:51:20.765111Z” to Instant in Java [duplicate]

无人久伴 提交于 2021-02-04 21:41:00

问题


How to parse "2020-05-22T12:51:20.732111Z" to Instant in Java?

I used:

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

but with error:

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)

回答1:


Use Instant#parse(String):

Instant i = Instant.parse("2020-05-22T12:51:20.732111Z");

And if you want to convert it to your timezone:

ZonedDateTime z = i.atZone(ZoneId.of("America/Toronto"));

Printing it yields:

2020-05-22T08:51:20.732111-04:00[America/Toronto]


来源:https://stackoverflow.com/questions/62675902/parse-date-2020-05-22t125120-765111z-to-instant-in-java

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!