public static LocalDateTime parseLocalDateTime28(byte[] str, int off) {
        long hms;
        byte c10;
        if (off + 28 > str.length
                || str[off + 4] != '-'
                || str[off + 7] != '-'
                || ((c10 = str[off + 10]) != ' ' && c10 != 'T')
                || (hms = hms(str, off + 11)) == -1L
                || str[off + 19] != '.'
        ) {
            return null;
        }

        int year = digit4(str, off);
        int month = digit2(str, off + 5);
        int dom = digit2(str, off + 8);
        int hour = (int) hms & 0xFF;
        int minute = (int) (hms >> 24) & 0xFF;
        int second = (int) (hms >> 48) & 0xFF;
        int nano = readNanos(str, 8, off + 20);

        return (year | month | dom | hour | minute | second | nano) <= 0 || hour > 24 || minute > 59 || second > 60
                ? null
                : LocalDateTime.of(year, month, dom, hour, minute, second, nano);
    }
yyyy-MM-ddTHH:mm:ss
yyyy-MM-dd HH:mm:ss
yyyy/MM/ddTHH:mm:ss
yyyy/MM/dd HH:mm:ss
core/src/main/java/com/alibaba/fastjson2/util/DateUtils.java