title: Java 8 date/time: instant, could not be parsed at index 19
body: <p>I have following piece of code:</p>
  
  <pre><code>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);
  </code></pre>
  
  <p>It gives me following exception:</p>
  
  <blockquote>
    <p>Exception in thread "main" java.time.format.DateTimeParseException:
    Text '2016-09-18T12:17:21:000Z' 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)    at
    core.domain.converters.TestDateTime.main(TestDateTime.java:10)</p>
  </blockquote>
  
  <p>When I change that last colon to a full stop:</p>
  
  <pre><code>String dateInString = "2016-09-18T12:17:21.000Z";
  </code></pre>
  
  <p>…then execution goes fine:</p>
  
  <blockquote>
    <p>2016-09-18T15:17:21+03:00[Europe/Kiev]</p>
  </blockquote>
  
  <p>So, the question is - how to parse date with <code>Instant</code> and <code>DateTimeFormatter</code>?</p>