public static String getRelativeTimeDescription(
long milliseconds, Locale locale, TimeZone timeZone,
Format dateTimeFormat) {
int daysBetween = DateUtil.getDaysBetween(
new Date(milliseconds), new Date(), timeZone);
long millisAgo = System.currentTimeMillis() - milliseconds;
if (millisAgo < Time.HOUR) {
long minutes = millisAgo / Time.MINUTE;
if (minutes <= 1) {
return LanguageUtil.get(locale, "about-a-minute-ago");
}
return LanguageUtil.format(locale, "x-minutes-ago", minutes, false);
}
else if ((millisAgo / Time.HOUR) == 1) {
return LanguageUtil.get(locale, "about-an-hour-ago");
}
else if ((millisAgo < Time.DAY) || (daysBetween == 0)) {
return LanguageUtil.format(
locale, "x-hours-ago", millisAgo / Time.HOUR, false);
}
else if (daysBetween == 1) {
Format timeFormat = FastDateFormatFactoryUtil.getTime(
locale, timeZone);
return LanguageUtil.format(