在开发过程中经常会计算目标时间到现在的时间差,最终显示成“2天前、1周前、1年前”这种格式。
虽然代码很简单,但是每次都写还是蛮烦的,现在记录一下,同时也分享一下(大家都不用写了,哈哈)。
public static String formatDateGap(Date date) {
long diffSeconds = ((new Date()).getTime() - date.getTime()) / 1000;
long day = diffSeconds / (24 * 60 * 60);
long hour = (diffSeconds / (60 * 60) - day * 24);
long min = ((diffSeconds / (60)) - day * 24 * 60 - hour * 60);
long s = (diffSeconds - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
String timeGap = s + "秒前";
if (min > 0) {
timeGap = min + "分前";
}
if (hour > 0) {
timeGap = hour + "小时前";
}
if (day > 0) {
timeGap = day + "天前";
}
if (day >= 7) {
timeGap = day / 7 + "周前";
}
if (day >= 30) {
timeGap = day / 30 + "个月前";
}
if (day >= 365) {
timeGap = day / 365 + "年前";
}
return timeGap;
}