【发布时间】:2017-06-29 07:19:50
【问题描述】:
我有以下代码:
String dateInString = "2016-09-18T12:17:21:000Z";
Instant instant = Instant.parse(dateInString);
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("Europe/Kiev"));
System.out.println(zonedDateTime);
它给了我以下异常:
线程“主”java.time.format.DateTimeParseException 中的异常: 无法在索引 19 处解析文本“2016-09-18T12:17:21:000Z” java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) 在 java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) 在 java.time.Instant.parse(Instant.java:395) 在 core.domain.converters.TestDateTime.main(TestDateTime.java:10)
当我将最后一个冒号改为句号时:
String dateInString = "2016-09-18T12:17:21.000Z";
…然后执行顺利:
2016-09-18T15:17:21+03:00[欧洲/基辅]
所以,问题是 - 如何使用 Instant 和 DateTimeFormatter 解析日期?
【问题讨论】:
标签: java date parsing time java.time.instant