public String getDuration() {
        if (!isBounded()) {
            return null;
        }
        long duration = getTo() - getFrom();
        int hours = (int) (duration / MS_IN_HOUR);
        duration = duration - (hours * MS_IN_HOUR);
        int minutes = (int) (duration / MS_IN_MINUTE);
        duration = duration - (minutes * MS_IN_MINUTE);
        int seconds = (int) (duration / MS_IN_SECOND);
        duration = duration - (seconds * MS_IN_SECOND);

        final StringBuilder sb = new StringBuilder();
        sb.append(zeroPad(2, Integer.toString(hours)));
        sb.append(":");
        sb.append(zeroPad(2, Integer.toString(minutes)));
        sb.append(":");
        sb.append(zeroPad(2, Integer.toString(seconds)));
        sb.append(".");
        sb.append(zeroPad(N3, Long.toString(duration)));

        return sb.toString();
    }
Gets the duration as a user readable string.
stroom-legacy/stroom-legacy-model_6_1/src/main/java/stroom/legacy/model_6_1/Period.java