title: DateTimeFormatter with parseDefaulting throwing exception
body: <p>I have</p>
  <pre><code>private static final DateTimeFormatter DATE_PATTERN = new DateTimeFormatterBuilder()
      .appendPattern(&quot;yyyy-MM-dd[ ]['T'][HH:mm:ss][.SSSSSS][.SSSSS][.SSSS][.SSS][.SS][.S][X]&quot;)
      .parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
      .parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
      .parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
      .parseDefaulting(ChronoField.MILLI_OF_SECOND, 0)
      .toFormatter()
      .withZone(ZoneOffset.UTC); // assume incoming is UTC
  </code></pre>
  <p>used by</p>
  <pre><code>public static Function&lt;String, String&gt; getFormattedDate() {
    return dateTime -&gt; {
      try {
        ZonedDateTime timeRemoved =
            ZonedDateTime.parse(dateTime, DATE_PATTERN).truncatedTo(ChronoUnit.DAYS);
        return DateTimeFormatter.ofPattern(DISPLAY_DATE_PATTERN).format(timeRemoved);
      } catch (Exception e) {
        return null;
      }
    };
  }
  </code></pre>
  <p>with a test that fails</p>
  <pre><code>public void test_data_patter_with_ms(){
    String formattedDate = DateTimeUtil.getFormattedDate().apply(&quot;2021-04-24T06:57:06.850&quot;);
    assertThat(formattedDate, is(&quot;2021-04-24T00:00:00Z&quot;));
  }
  </code></pre>
  <p>with the exception</p>
  <blockquote>
  <p>java.time.format.DateTimeParseException: Text
  '2021-04-24T06:57:06.850' could not be parsed: Conflict found:
  NanoOfSecond 850000000 differs from NanoOfSecond 0 while resolving
  MilliOfSecond</p>
  </blockquote>
  <p>If I comment out .parseDefaulting(ChronoField.MILLI_OF_SECOND, 0) it works, but I'm not really sure I understand why and I don't like fixing issues and not understanding the why I fixed it.</p>