Potřeboval jsem zformátovat čas, který ale není datumem. Něco jako jak dlouho někdo běžel a podobně. Po krátkém hledání jsem ale nic nenašel jak to řešit. Neměl jsem moc času a tu prkotinu si naprogramoval, ale zajímalo by mě jestli to nějak jde. Konkrétně jsem potřeboval asi takový výstup "180 dní 08:32:05". SimpleDateFormat mi moc nepomohl.

no zveřejním i to co jsem naprogramoval, to kdyby jste to také řešili.
Kód:
package xxx;

import java.text.DecimalFormat;

public class TimeFormater {
	private final static long DAY = 24 * 3600 * 1000L;
	private final static long HOUR = 3600 * 1000L;
	private final static long MINUTE = 60 * 1000L;
	private final static long SECOND = 1000L;

	// we want two digits for hours,minutes... HH:mm:ss
	private final static DecimalFormat TWO_DIGITS = new DecimalFormat("00");

	public static String format(long miliTime) {
		long time = miliTime;

		String output = "";

		// it time is bigger than one day
		if (time > DAY) {
			long days = miliTime / DAY;	// count days
			time %= DAY;	// save the rest (delete days from time)
			output += "" + days;	// add number of days
			output += (days == 1) ? " day " : " days ";	// add word "day" or "days"
		}

		// find how many hour time contains and format it to two digits
		output += TWO_DIGITS.format(time / HOUR) + ":";
		time %= HOUR;

		// minutes
		output += TWO_DIGITS.format(time / MINUTE) + ":";
		time %= MINUTE;

		// seconds
		output += TWO_DIGITS.format(time / SECOND);

		return output;
	}
}