问题
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