Java tutorial
//package com.java2s; import java.util.concurrent.TimeUnit; public class Main { private static int[] factors = { 1000, 1000, 1000, 1000, 60, 60, 24 }; public static String getTimeString(long value, TimeUnit unit) { if (value <= 0) return ""; int i = unit.ordinal(); TimeUnit[] units = TimeUnit.values(); TimeUnit next = null; int factor = -1; if (i < factors.length - 1) { next = units[i + 1]; factor = factors[i + 1]; long nextValue = value / factor; if (nextValue > 0) return getTimeString(value / factor, next) + " " + getTimeString(value % factor, unit); } return value + toString(unit); } public static String toString(TimeUnit unit) { switch (unit) { case HOURS: case DAYS: case MINUTES: case SECONDS: return unit.toString().substring(0, 1).toLowerCase(); case MILLISECONDS: return "ms"; case MICROSECONDS: return "micros"; case NANOSECONDS: return "ns"; } return ""; } }