title: java.time.format.DateTimeParseException: Text could not be parsed at index 21
body: <p>I get the datetime value as  </p>
  
  <pre><code>created_at  '2012-02-22T02:06:58.147Z'
  Read-only. The time at which this task was created.
  </code></pre>
  
  <p>Which is given by Asana <a href="https://asana.com/developers/api-reference/tasks" rel="noreferrer">API</a></p>
  
  <p>I am using <code>Java 8</code> to parse the date time as following</p>
  
  <pre><code>import java.time.*;
  import java.time.format.*;
  
  public class Times {
  
    public static void main(String[] args) {
      final String dateTime = "2012-02-22T02:06:58.147Z";
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'hh:mm:ss.SX");
  
  
      final ZonedDateTime parsed = ZonedDateTime.parse(dateTime, formatter);
      System.out.println(parsed);
    }
  }
  </code></pre>
  
  <p>When I run this, I get the following error</p>
  
  <pre><code>Exception in thread "main" java.time.format.DateTimeParseException: Text '2012-02-22T02:06:58.147Z' could not be parsed at index 21
      at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1947)
      at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1849)
      at java.time.ZonedDateTime.parse(ZonedDateTime.java:597)
      at Times.main(Times.java:11)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:497)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
  </code></pre>
  
  <p>What is not right here?</p>