public static long timestampFromReadableString()

in hugegraph-common/src/main/java/org/apache/hugegraph/util/UnitUtil.java [147:180]


    public static long timestampFromReadableString(String valueWithUnit) {
        long ms = 0L;
        // Adapt format 'nDnHnMnS' to 'PnYnMnDTnHnMnS'
        String formatDuration = valueWithUnit.toUpperCase();
        if (formatDuration.indexOf('D') >= 0) {
            // Contains days
            assert !formatDuration.contains("MS");
            formatDuration = "P" + formatDuration.replace("D", "DT");
        } else {
            // Not exists days
            int msPos = formatDuration.indexOf("MS");
            // If contains ms, remove the ms part
            if (msPos >= 0) {
                int sPos = formatDuration.indexOf("S");
                if (0 <= sPos && sPos < msPos) {
                    // If contains second part
                    sPos += 1;
                    ms = Long.parseLong(formatDuration.substring(sPos, msPos));
                    ms %= 1000L;
                    formatDuration = formatDuration.substring(0, sPos);
                } else {
                    // Not contains second part, only exists ms
                    ms = Long.parseLong(formatDuration.substring(0, msPos));
                    return ms;
                }
            } else {
                assert formatDuration.endsWith("S");
            }
            formatDuration = "PT" + formatDuration;
        }

        Duration duration = Duration.parse(formatDuration);
        return duration.toMillis() + ms;
    }