docs: public int parseInto(ReadWritableInstant instant, String text, int position) {
          InternalParser parser = requireParser();
          if (instant == null) {
              throw new IllegalArgumentException("Instant must not be null");
          }
          
          long instantMillis = instant.getMillis();
          Chronology chrono = instant.getChronology();
          int defaultYear = DateTimeUtils.getChronology(chrono).year().get(instantMillis);
          long instantLocal = instantMillis + chrono.getZone().getOffset(instantMillis);
          chrono = selectChronology(chrono);
          
          DateTimeParserBucket bucket = new DateTimeParserBucket(
              instantLocal, chrono, iLocale, iPivotYear, defaultYear);
          int newPos = parser.parseInto(bucket, text, position);
          instant.setMillis(bucket.computeMillis(false, text));
          if (iOffsetParsed && bucket.getOffsetInteger() != null) {
              int parsedOffset = bucket.getOffsetInteger();
              DateTimeZone parsedZone = DateTimeZone.forOffsetMillis(parsedOffset);
              chrono = chrono.withZone(parsedZone);
          } else if (bucket.getZone() != null) {
              chrono = chrono.withZone(bucket.getZone());
          }
          instant.setChronology(chrono);
          if (iZone != null) {
              instant.setZone(iZone);
          }
          return newPos;
      }