@VisibleForTesting
    public static String getFormatPartitionValue(String value) {
        StringBuilder sb = new StringBuilder();
        // When the value is negative
        if (value.length() > 0 && value.charAt(0) == '-') {
            sb.append("_");
        }
        for (int i = 0; i < value.length(); i++) {
            char ch = value.charAt(i);
            if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9')) {
                sb.append(ch);
            } else if (ch == '-' || ch == ':' || ch == ' ') {
                // Main user remove characters in time
            } else {
                int unicodeValue = value.codePointAt(i);
                String unicodeString = Integer.toHexString(unicodeValue);
                sb.append(unicodeString);
            }
        }
        return sb.toString();
    }
@Test
    public void testGetFormatPartitionValue() {
        Assert.assertEquals("_11", AnalyzerUtils.getFormatPartitionValue("-11"));
        Assert.assertEquals("20200101", AnalyzerUtils.getFormatPartitionValue("2020-01-01"));
        Assert.assertEquals("676d5dde", AnalyzerUtils.getFormatPartitionValue("杭州"));
    }