public static String convertToString()

in eventmesh-connectors/eventmesh-connector-canal/src/main/java/org/apache/eventmesh/connector/canal/SqlUtils.java [528:578]


    public static String convertToString(Object value) {
        if (value == null) {
            return null;
        }
        if (value instanceof String) {
            return (String) value;
        }
        if (value instanceof BigInteger) {
            return value.toString();
        }
        if (value instanceof BigDecimal) {
            return ((BigDecimal) value).toPlainString();
        }
        if (value instanceof Number) {
            return new BigDecimal(value.toString()).toPlainString();
        }
        if (value instanceof Boolean) {
            return Boolean.TRUE.equals(value) ? "1" : "0";
        }
        if (value instanceof byte[]) {
            return "0x" + bytes2hex((byte[]) value);
        }
        if (value instanceof Timestamp) {
            long nanos = ((Timestamp) value).getNanos();
            value = Instant.ofEpochMilli(((Timestamp) value).getTime() - (nanos / 1000000)).plusNanos(nanos).atZone(ZoneId.systemDefault())
                .toLocalDateTime();
        } else if (value instanceof Date) {
            value = ((Date) value).toLocalDate().atTime(0, 0);
        } else if (value instanceof Time) {
            value = LocalDateTime.of(LocalDate.of(1970, 1, 1),
                Instant.ofEpochMilli(((Time) value).getTime()).atZone(ZoneId.systemDefault()).toLocalTime());
        } else if (value instanceof java.util.Date) {
            value = ((java.util.Date) value).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
        }
        if (value instanceof LocalDateTime) {
            return coverLocalDateTime2String((LocalDateTime) value);
        } else if (value instanceof OffsetDateTime) {
            OffsetDateTime zone = (OffsetDateTime) value;
            String datetimeStr = coverLocalDateTime2String(zone.toLocalDateTime());
            String zonedStr = zone.getOffset().toString();
            if ("Z".equals(zonedStr)) {
                return datetimeStr + "+00:00";
            }
            return datetimeStr + zonedStr;
        } else if (!(value instanceof LocalTime)) {
            return value.toString();
        } else {
            LocalTime local3 = (LocalTime) value;
            return String.format("%02d:%02d:%02d", local3.getHour(), local3.getMinute(), local3.getSecond());
        }
    }