一分钟内显示“刚刚”;1小时内显示分钟(不到下一个整数,就按当前整数算,例:1分50秒;显示1分钟前);一天内显示小时(规则一样);后面都显示几天前就可以。
public class test(){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str1 = "2016-12-15 14:03:10.23";
try {
Date date = df.parse(str1);
long[] times = getDistanceTimes(date);
if(times[0]>0){
System.out.println(times[0]+"天前");
}else if(times[1]>0){
System.out.println(times[1]+"小时前");
}else if(times[2]>0){
System.out.println(times[2]+"分钟前");
}else{
System.out.println(times[3]+"秒前");
}
} catch (ParseException e) {
e.printStackTrace();
}
public static long[] getDistanceTimes(Date date) {
long day = 0;
long hour = 0;
long min = 0;
long sec = 0;
long diff;
diff = System.currentTimeMillis() - date.getTime();
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000) - day * 24);
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
sec = (diff/1000-day*24*60*60-hour*60*60-min*60);
long[] times = {day, hour, min, sec};
return times;
}
}