`
/**
* 根据long类型的时间戳,转换为一个String类型的描述性时间
* 通话记录如果发生在今天:“15:30”
* 发生在昨天:“昨天8:23”
* 发生在前天:“前天4:56”
* 更早: “2016/04/15”
* @param timeStample
* @return
*/
//timeStample是聊天记录发生的时间
public static String getTime(long timeStample) {
//得到现在的时间戳
long now=System.currentTimeMillis();
//在java中,int类型的数进行除法运算,只能的整数,正是利用这一点,
//在下列日期中,只要没过昨天24点,无论相差了1s还是23小时,除法得到的结果都是前一天,
int day=(int) (now/1000/60/60/60-timeStample/1000/60/60/60);
switch (day) {
//如果是0这则说明是今天,显示时间
case 0:SimpleDateFormat sdf=new SimpleDateFormat("HH:mm");
return sdf.format(timeStample);
//如果是1说明是昨天,显示昨天+时间
case 1:SimpleDateFormat sdf1=new SimpleDateFormat("HH:mm");
return "昨天"+sdf1.format(timeStample);
//如果是1说明是前天,显示前天+时间
case 2:SimpleDateFormat sdf2=new SimpleDateFormat("HH:mm");
return "前天"+sdf2.format(timeStample);
//结果大于2就只显示年月日
default:SimpleDateFormat sdf3=new SimpleDateFormat("yyyy:MM:dd");
return sdf3.format(timeStample);
时间: 2024-11-10 01:18:21