docs: public static Date parse(String value) {
      if (value.length() == 0) {
        return null;
      }
  
      ParsePosition position = new ParsePosition(0);
      Date result = STANDARD_DATE_FORMAT.get().parse(value, position);
      if (position.getIndex() == value.length()) {
        // STANDARD_DATE_FORMAT must match exactly; all text must be consumed, e.g. no ignored
        // non-standard trailing "+01:00". Those cases are covered below.
        return result;
      }
      synchronized (BROWSER_COMPATIBLE_DATE_FORMAT_STRINGS) {
        for (int i = 0, count = BROWSER_COMPATIBLE_DATE_FORMAT_STRINGS.length; i < count; i++) {
          DateFormat format = BROWSER_COMPATIBLE_DATE_FORMATS[i];
          if (format == null) {
            format = new SimpleDateFormat(BROWSER_COMPATIBLE_DATE_FORMAT_STRINGS[i], Locale.US);
            // Set the timezone to use when interpreting formats that don't have a timezone. GMT is
            // specified by RFC 7231.
            format.setTimeZone(UTC);
            BROWSER_COMPATIBLE_DATE_FORMATS[i] = format;
          }
          position.setIndex(0);
          result = format.parse(value, position);
          if (position.getIndex() != 0) {
            // Something was parsed. It's possible the entire string was not consumed but we ignore
            // that. If any of the BROWSER_COMPATIBLE_DATE_FORMAT_STRINGS ended in "'GMT'" we'd have
            // to also check that position.getIndex() == value.length() otherwise parsing might have
            // terminated early, ignoring things like "+01:00". Leaving this as != 0 means that any
            // trailing junk is ignored.
            return result;
          }
        }
      }
      return null;
    }