Heads up! This post was written 12 years ago. Some information might be outdated or may have changed since then.
import java.util.Date;
public class PrettyDate {
private Date date;
public PrettyDate() {
this(new Date());
}
public PrettyDate(Date date) {
this.date = date;
}
public String toString() {
long current = (new Date()).getTime(), timestamp = date.getTime(), diff = (current - timestamp) / 1000;
int amount = 0;
String what = "";
if (diff > 31536000) {
amount = (int) (diff / 31536000);
what = "година";
} else if (diff > 31536000) {
amount = (int) (diff / 31536000);
what = "месеца";
} else if (diff > 604800) {
amount = (int) (diff / 604800);
what = "седмици";
} else if (diff > 86400) {
amount = (int) (diff / 86400);
what = "ден";
} else if (diff > 3600) {
amount = (int) (diff / 3600);
what = "часа";
} else if (diff > 60) {
amount = (int) (diff / 60);
what = "минути";
} else {
amount = (int) diff;
what = "секунди";
if (amount < 6) {
return "точно сега";
}
}
if (amount == 1) {
if (what.equals("ден")) {
return "вчера";
} else if (what.equals("седмици") || what.equals("месеца") || what.equals("години")) {
if (what.equals("месеца")) {
return "преди " + amount + "месец";
}
if (what.equals("седмици")) {
return "преди " + amount + "седмица";
}
if (what.equals("години")) {
return "преди " + amount + "година";
}
return "преди " + what;
}
}
return "преди " + amount + " " + what;
}
} Може да го използваме по следния начин: long dv = Long.valueOf(item.date) * 1000;
Date df = new java.util.Date(dv);
PrettyDate date = new PrettyDate(df);
System.out.println("Посетено " + date.toString());