protected static String replaceShorthand()

in ogg-plugin/src/main/java/com/aliyun/odps/ogg/handler/datahub/util/BucketPath.java [62:152]


    protected static String replaceShorthand(char c, long timestamp) {

        try {
            Preconditions.checkNotNull(timestamp, "timestamp can't be null");
        } catch (NumberFormatException e) {
            throw new RuntimeException("Unable to parse timestamp.", e);
        }

        // It's a date
        String formatString = "";
        switch (c) {
            case '%':
                return "%";
            case 'a':
                formatString = "EEE";
                break;
            case 'A':
                formatString = "EEEE";
                break;
            case 'b':
                formatString = "MMM";
                break;
            case 'B':
                formatString = "MMMM";
                break;
            case 'c':
                formatString = "EEE MMM d HH:mm:ss yyyy";
                break;
            case 'd':
                formatString = "dd";
                break;
            case 'e':
                formatString = "d";
                break;
            case 'D':
                formatString = "MM/dd/yy";
                break;
            case 'H':
                formatString = "HH";
                break;
            case 'I':
                formatString = "hh";
                break;
            case 'j':
                formatString = "DDD";
                break;
            case 'k':
                formatString = "H";
                break;
            case 'l':
                formatString = "h";
                break;
            case 'm':
                formatString = "MM";
                break;
            case 'M':
                formatString = "mm";
                break;
            case 'n':
                formatString = "M";
                break;
            case 'p':
                formatString = "a";
                break;
            case 's':
                return "" + (timestamp/1000);
            case 'S':
                formatString = "ss";
                break;
            case 't':
                // This is different from unix date (which would insert a tab character
                // here)
                return "" + timestamp;
            case 'y':
                formatString = "yy";
                break;
            case 'Y':
                formatString = "yyyy";
                break;
            case 'z':
                formatString = "ZZZ";
                break;
            default:
                return "";
        }

        SimpleDateFormat format = new SimpleDateFormat(formatString);
        format.setTimeZone(TimeZone.getDefault());
        Date date = new Date(timestamp);
        return format.format(date);
    }