docs: public DateTime parseDateTime(String text) {
          InternalParser parser = requireParser();
          
          Chronology chrono = selectChronology(null);
          DateTimeParserBucket bucket = new DateTimeParserBucket(0, chrono, iLocale, iPivotYear, iDefaultYear);
          int newPos = parser.parseInto(bucket, text, 0);
          if (newPos >= 0) {
              if (newPos >= text.length()) {
                  long millis = bucket.computeMillis(true, 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());
                  }
                  DateTime dt = new DateTime(millis, chrono);
                  if (iZone != null) {
                      dt = dt.withZone(iZone);
                  }
                  return dt;
              }
          } else {
              newPos = ~newPos;
          }
          throw new IllegalArgumentException(FormatUtils.createErrorMessage(text, newPos));
      }