今天做项目的过程中使用到时间戳的问题,主要代码就是下面的那个方法:
/**
* 根据毫秒时间戳来格式化字符串
* 今天显示几时几分、昨天显示昨天、前天显示前天.
* 早于前天的显示具体年-月-日,如2017-06-12;
* @param timeStamp 毫秒值
* @return 几时几分 昨天 前天 或者 yyyy-MM-dd 类型字符串
*/
public static String format(long timeStamp){
String strTime="";
long curTimeMillis = System.currentTimeMillis();
Date curDate = new Date(curTimeMillis);
int todayHoursSeconds = curDate.getHours() * 60 * 60;
int todayMinutesSeconds = curDate.getMinutes() * 60;
int todaySeconds = curDate.getSeconds();
int todayMillis = (todayHoursSeconds + todayMinutesSeconds + todaySeconds) * 1000;
long todayStartMillis = curTimeMillis - todayMillis;
if(timeStamp >= todayStartMillis) {
Date date=new Date(timeStamp);
strTime=date.getHours()+":"+date.getMinutes();//显示几时几分
return strTime;
}
int oneDayMillis=24*60*60*1000;
long yesterdayStartMillis=todayStartMillis-oneDayMillis;
if (timeStamp>=yesterdayStartMillis){
return "昨天";
}
long yesterdayBeforeStartMillis=yesterdayStartMillis-oneDayMillis;
if (timeStamp>=yesterdayBeforeStartMillis){
return "前天";
}
strTime = DateUtils.getDayWithPattern(timeStamp, "yyyy-MM-dd ");
return strTime;
}
运行的效果图如下: