core/src/main/java/com/alibaba/fastjson2/util/DateUtils.java [1934:2031]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        int year, month, dom, hour, minute, second;
        if (c4 == '-' && c6 == '-' && (c9 == ' ' || c9 == 'T') && c12 == ':' && c15 == ':') {
            year = digit4(str, off);
            month = digit1(str, off + 5);
            dom = digit2(str, off + 7);
            hour = digit2(str, off + 10);
            minute = digit2(str, off + 13);
            second = digit2(str, off + 16);
        } else if (c4 == '-' && c7 == '-' && (c9 == ' ' || c9 == 'T') && c12 == ':' && c15 == ':') {
            year = digit4(str, off);
            month = digit2(str, off + 5);
            dom = digit1(str, off + 8);
            hour = digit2(str, off + 10);
            minute = digit2(str, off + 13);
            second = digit2(str, off + 16);
        } else if (c4 == '-' && c7 == '-' && (c10 == ' ' || c10 == 'T') && c12 == ':' && c15 == ':') {
            year = digit4(str, off);
            month = digit2(str, off + 5);
            dom = digit2(str, off + 8);
            hour = digit1(str, off + 11);
            minute = digit2(str, off + 13);
            second = digit2(str, off + 16);
        } else if (c4 == '-' && c7 == '-' && (c10 == ' ' || c10 == 'T') && c13 == ':' && c15 == ':') {
            year = digit4(str, off);
            month = digit2(str, off + 5);
            dom = digit2(str, off + 8);
            hour = digit2(str, off + 11);
            minute = digit1(str, off + 14);
            second = digit2(str, off + 16);
        } else if (c4 == '-' && c7 == '-' && (c10 == ' ' || c10 == 'T') && c13 == ':' && c16 == ':') {
            year = digit4(str, off);
            month = digit2(str, off + 5);
            dom = digit2(str, off + 8);
            hour = digit2(str, off + 11);
            minute = digit2(str, off + 14);
            second = digit1(str, off + 17);
        } else if (c1 == ' ' && c5 == ' ' && c10 == ' ' && c12 == ':' && c15 == ':') {
            // d MMM yyyy H:mm:ss
            // 6 DEC 2020 2:13:14
            dom = digit1(str, off);
            month = DateUtils.month(c2, c3, c4);
            year = digit4(str, off + 6);
            hour = digit1(str, off + 11);
            minute = digit2(str, off + 13);
            second = digit2(str, off + 16);
        } else if (c1 == ' ' && c5 == ' ' && c10 == ' ' && c13 == ':' && c15 == ':') {
            // d MMM yyyy HH:m:ss
            // 6 DEC 2020 12:3:14
            dom = digit1(str, off);
            month = DateUtils.month(c2, c3, c4);
            year = digit4(str, off + 6);
            hour = digit2(str, off + 11);
            minute = digit1(str, off + 14);
            second = digit2(str, off + 16);
        } else if (c1 == ' ' && c5 == ' ' && c10 == ' ' && c13 == ':' && c16 == ':') {
            // d MMM yyyy HH:m:ss
            // 6 DEC 2020 12:3:14
            dom = digit1(str, off);
            month = DateUtils.month(c2, c3, c4);
            year = digit4(str, off + 6);
            hour = digit2(str, off + 11);
            minute = digit2(str, off + 14);
            second = digit1(str, off + 17);
        } else if (c2 == ' ' && c6 == ' ' && c11 == ' ' && c14 == ':' && c16 == ':') {
            // dd MMM yyyy HH:m:s
            // 16 DEC 2020 12:3:4
            dom = digit2(str, off);
            month = DateUtils.month(c3, c4, c5);
            year = digit4(str, off + 7);
            hour = digit2(str, off + 12);
            minute = digit1(str, off + 15);
            second = digit1(str, off + 17);
        } else if (c2 == ' ' && c6 == ' ' && c11 == ' ' && c13 == ':' && c16 == ':') {
            // dd MMM yyyy H:mm:s
            // 16 DEC 2020 1:13:4
            dom = digit2(str, off);
            month = DateUtils.month(c3, c4, c5);
            year = digit4(str, off + 7);
            hour = digit1(str, off + 12);
            minute = digit2(str, off + 14);
            second = digit1(str, off + 17);
        } else if (c2 == ' ' && c6 == ' ' && c11 == ' ' && c13 == ':' && c15 == ':') {
            // dd MMM yyyy H:mm:s
            // 16 DEC 2020 1:13:4
            dom = digit2(str, off);
            month = DateUtils.month(c3, c4, c5);
            year = digit4(str, off + 7);
            hour = digit1(str, off + 12);
            minute = digit1(str, off + 14);
            second = digit2(str, off + 16);
        } else {
            String input = new String(str, off, 18);
            throw new DateTimeParseException("illegal input " + input, input, 0);
        }

        return (year | month | dom | hour | minute | second) < 0
                ? null
                : LocalDateTime.of(year, month, dom, hour, minute, second);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



core/src/main/java/com/alibaba/fastjson2/util/DateUtils.java [2068:2165]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        int year, month, dom, hour, minute, second;
        if (c4 == '-' && c6 == '-' && (c9 == ' ' || c9 == 'T') && c12 == ':' && c15 == ':') {
            year = digit4(str, off);
            month = digit1(str, off + 5);
            dom = digit2(str, off + 7);
            hour = digit2(str, off + 10);
            minute = digit2(str, off + 13);
            second = digit2(str, off + 16);
        } else if (c4 == '-' && c7 == '-' && (c9 == ' ' || c9 == 'T') && c12 == ':' && c15 == ':') {
            year = digit4(str, off);
            month = digit2(str, off + 5);
            dom = digit1(str, off + 8);
            hour = digit2(str, off + 10);
            minute = digit2(str, off + 13);
            second = digit2(str, off + 16);
        } else if (c4 == '-' && c7 == '-' && (c10 == ' ' || c10 == 'T') && c12 == ':' && c15 == ':') {
            year = digit4(str, off);
            month = digit2(str, off + 5);
            dom = digit2(str, off + 8);
            hour = digit1(str, off + 11);
            minute = digit2(str, off + 13);
            second = digit2(str, off + 16);
        } else if (c4 == '-' && c7 == '-' && (c10 == ' ' || c10 == 'T') && c13 == ':' && c15 == ':') {
            year = digit4(str, off);
            month = digit2(str, off + 5);
            dom = digit2(str, off + 8);
            hour = digit2(str, off + 11);
            minute = digit1(str, off + 14);
            second = digit2(str, off + 16);
        } else if (c4 == '-' && c7 == '-' && (c10 == ' ' || c10 == 'T') && c13 == ':' && c16 == ':') {
            year = digit4(str, off);
            month = digit2(str, off + 5);
            dom = digit2(str, off + 8);
            hour = digit2(str, off + 11);
            minute = digit2(str, off + 14);
            second = digit1(str, off + 17);
        } else if (c1 == ' ' && c5 == ' ' && c10 == ' ' && c12 == ':' && c15 == ':') {
            // d MMM yyyy H:mm:ss
            // 6 DEC 2020 2:13:14
            dom = digit1(str, off);
            month = DateUtils.month(c2, c3, c4);
            year = digit4(str, off + 6);
            hour = digit1(str, off + 11);
            minute = digit2(str, off + 13);
            second = digit2(str, off + 16);
        } else if (c1 == ' ' && c5 == ' ' && c10 == ' ' && c13 == ':' && c15 == ':') {
            // d MMM yyyy HH:m:ss
            // 6 DEC 2020 12:3:14
            dom = digit1(str, off);
            month = DateUtils.month(c2, c3, c4);
            year = digit4(str, off + 6);
            hour = digit2(str, off + 11);
            minute = digit1(str, off + 14);
            second = digit2(str, off + 16);
        } else if (c1 == ' ' && c5 == ' ' && c10 == ' ' && c13 == ':' && c16 == ':') {
            // d MMM yyyy HH:m:ss
            // 6 DEC 2020 12:3:14
            dom = digit1(str, off);
            month = DateUtils.month(c2, c3, c4);
            year = digit4(str, off + 6);
            hour = digit2(str, off + 11);
            minute = digit2(str, off + 14);
            second = digit1(str, off + 17);
        } else if (c2 == ' ' && c6 == ' ' && c11 == ' ' && c14 == ':' && c16 == ':') {
            // dd MMM yyyy HH:m:s
            // 16 DEC 2020 12:3:4
            dom = digit2(str, off);
            month = DateUtils.month(c3, c4, c5);
            year = digit4(str, off + 7);
            hour = digit2(str, off + 12);
            minute = digit1(str, off + 15);
            second = digit1(str, off + 17);
        } else if (c2 == ' ' && c6 == ' ' && c11 == ' ' && c13 == ':' && c16 == ':') {
            // dd MMM yyyy H:mm:s
            // 16 DEC 2020 1:13:4
            dom = digit2(str, off);
            month = DateUtils.month(c3, c4, c5);
            year = digit4(str, off + 7);
            hour = digit1(str, off + 12);
            minute = digit2(str, off + 14);
            second = digit1(str, off + 17);
        } else if (c2 == ' ' && c6 == ' ' && c11 == ' ' && c13 == ':' && c15 == ':') {
            // dd MMM yyyy H:mm:s
            // 16 DEC 2020 1:13:4
            dom = digit2(str, off);
            month = DateUtils.month(c3, c4, c5);
            year = digit4(str, off + 7);
            hour = digit1(str, off + 12);
            minute = digit1(str, off + 14);
            second = digit2(str, off + 16);
        } else {
            String input = new String(str, off, 18);
            throw new DateTimeParseException("illegal input " + input, input, 0);
        }

        return (year | month | dom | hour | minute | second) < 0
                ? null
                : LocalDateTime.of(year, month, dom, hour, minute, second);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



