[Java] Formátování uplynulého času
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;
}
}
Re: [Java] Formátování uplynulého času
Jakto, ze nemas datum? Milisekundy jsou datum, protoze promenna typu java.util.Date je interne reprezentovana milisekundami. Normalne si milisekundy narvi do java.util.Calendar a z toho ziskas vsechno co potrebujes.
Re: [Java] Formátování uplynulého času
To ano, ale problémem je, že on to požítá od roku 1970. takže když budu mít nějaké obrovské číslo, například tři roky tak mi to vrátí rok 1973 a ne 3. Moc jsem to ale nestudoval. Navíc "day of year" ti vrátí jeho pořadové číslo.
Re: [Java] Formátování uplynulého času
Ok, zkousel jsi Jodu? Nevim jiste jestli tam je api pro tve potreby, ale stalo by to za prozkoumani.
http://blog.novoj.net/2008/02/13/jes...uce-joda-time/
Re: [Java] Formátování uplynulého času
Jo to vypadá docela slibně. Až to budu příště potřebovat... Teď už to mám a navíc nechci používat další (veliký) externí balík.
http://joda-time.sourceforge.net/api...me/Period.html
a
http://joda-time.sourceforge.net/api...Formatter.html