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; } }