title: LocalDateTime format with time zone and milliseconds
body: <p>I'm trying to write a <code>DateTimeFormatter</code> to parse the following format:</p>
  
  <pre><code>2020-05-29T07:51:33.106-07:00
  </code></pre>
  
  <p>I have looked at <a href="https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ISO_OFFSET_DATE_TIME" rel="nofollow noreferrer"><code>ISO_OFFSET_DATE_TIME</code></a>, but the problem is it does not contain milliseconds. So I decided to write on my own. </p>
  
  <p>It is easy to do so without timezone:</p>
  
  <pre><code>public static void main (String[] args) throws java.lang.Exception {
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS");
      System.out.println(
          LocalDateTime.parse("2020-05-29T07:51:33.106", formatter)
      );
  }
  </code></pre>
  
  <p><a href="https://ideone.com/H0htNS" rel="nofollow noreferrer">It works just fine</a></p>
  
  <p>But when I tried to add a timezone in the format as</p>
  
  <pre><code>public static void main (String[] args) throws java.lang.Exception {
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
      System.out.println(
          LocalDateTime.parse("2020-05-29T07:51:33.106-07:00", formatter)
      );
  }
  </code></pre>
  
  <p><a href="https://ideone.com/MKSfvS" rel="nofollow noreferrer">It now fails with an exception</a> that the timezone is unable to be parsed. </p>
  
  <pre><code>Exception in thread "main" java.time.format.DateTimeParseException: Text '2020-05-29T07:51:33.106-07:00' could not be parsed at index 23
      at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2049)
      at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1951)
      at java.base/java.time.LocalDateTime.parse(LocalDateTime.java:492)
      at Ideone.main(Main.java:16)
  </code></pre>
  
  <p>How to parse a timezone in such a format?</p>