public static String long2TimeString(final long time) {
		long ms = time % 1000;
		long sec = (time / 1000);
		long min = (sec / 60);
		sec = sec % 60;
		long hr = min / 60;
		min = min % 60;

		StringBuilder sbTime = new StringBuilder();
		if (hr > 0) sbTime.append(hr).append(" hr ");
		if (min == 0) {
			if (sbTime.length() > 0) sbTime.append("0 min ");
		} else {
			sbTime.append(min).append(" min ");
		}
		DecimalFormat nf = null;
		if (sec == 0 && sbTime.length() == 0) {
			nf = new DecimalFormat("##0 ms");
			sbTime.append(nf.format(ms));
		} else {
			nf = new DecimalFormat("0.000 sec");
			sbTime.append(nf.format(sec + 1.0 * ms / 1000));
		}
		return sbTime.toString();
	}