/** * Formats a duration in ms. * * @param duration Duration in ms. * @return Formatted duration. */ public static String formatDuration(long duration) { return formatDuration(duration, null); }
/** * Formats a duration in ms to the specified accuracy. * * @param duration Duration in ms. * @param accuracy Accuracy of output. * @return Formatted duration. */ public static String formatDuration(long duration, TimeUnit accuracy) { return formatDuration(duration, accuracy, true, false); }
@Test public void testDuration() { assertEquals("0 seconds", DateUtil.formatDuration(100, TimeUnit.SECONDS)); assertEquals("0 sec", DateUtil.formatDuration(100, TimeUnit.SECONDS, false, true)); assertEquals("1 second", DateUtil.formatDuration(1000, TimeUnit.SECONDS)); assertEquals("1 minute", DateUtil.formatDuration(60000, TimeUnit.SECONDS)); assertEquals("3 days 14 hours 4 minutes 58 seconds", DateUtil.formatDuration(309898934, TimeUnit.SECONDS)); assertEquals("3 day 14 hour 4 minute 58 second", DateUtil.formatDuration(309898934, TimeUnit.SECONDS, false, false)); assertEquals("98 years 2 months 1 week 6 days 10 hours 22 minutes 23 seconds", DateUtil.formatDuration(3098989343984L, TimeUnit.SECONDS)); assertEquals("3 days 14 hrs 4 mins 58 secs", DateUtil.formatDuration(309898934, TimeUnit.SECONDS, true, true)); assertEquals("-98 years 2 months 1 week 6 days 10 hours 22 minutes 23 seconds", DateUtil.formatDuration(-3098989343984L, TimeUnit.SECONDS)); }
private void updateCountdown() { if (state == State.COUNTDOWN) { String s = nextMode().getLabel(TIMEOUT_WARNING, DateUtil.formatDuration(countdown, TimeUnit.SECONDS)); lblDuration.setLabel(s); timeoutPanel.addClass("alert:" + (countdown <= 10000 ? "alert-danger" : "alert-warning")); } }