/**
* 版本修订记录
* 创建:2013-8-3
* 版本:
*
* 修订1: 说明:
* 修订2: 说明:
*/
package org.howsun.util;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 描述:
* @author howsun
* @version 3.0
* Building Time 2013-8-3
*
*/
public abstract class Times {
public static String getDisplayTime(Date date){
long millisecond = System.currentTimeMillis() - date.getTime();
//现在时间与参数时间之间的秒数,简称"差秒"
long second = millisecond / 1000;
//5分钟内都为刚刚
if (second < 5 * 60) {
return "刚刚";
}
//1小时内为"x分钟前"
if (second < 1 * 3600) {
long minute = second / 60;
return minute + "分钟前";
}
//如果"差秒"在1小时以上,3小时以内
if(second <= 3 * 3600){
long hour = (second / 60) / 60;
return hour + "小时前";
}
SimpleDateFormat sdf = new SimpleDateFormat("H:m");
//今天最开始的秒数
long todayFirstSecond = Dates.getSecoendOfBegin(Calendar.DATE) / 1000;
//如果参数秒数大于今天最开始的秒数,则是今天的时间
long dateSecond = date.getTime() / 1000;
if (dateSecond >= todayFirstSecond) {
return "今天" + sdf.format(date);
}
// 如果参数秒数小于今天最开始的秒数,则是今天以前的时间,如昨天
long second1 = todayFirstSecond - dateSecond;
if (second1 <= 86400) {
return "昨天" + sdf.format(date);
}
if (second1 <= 86400 * 2) {
return "前天" + sdf.format(date);
}
if (second1 <= 86400 * 3) {
long day = ((second / 60) / 60) / 24;
return day + "天前";
}
long yearFirstSecond = Dates.getSecoendOfBegin(Calendar.YEAR) / 1000;
long second2 = yearFirstSecond - dateSecond;
if (second2 < 0) {
sdf.applyPattern("M-d H:m");
return sdf.format(date);
}
sdf.applyPattern("yyyy-M-d H:m");
return sdf.format(date);
}
public static void main(String[] args) {
Date date = new Date();
date.setTime(date.getTime()- 1 * 60 * 1000L);
System.out.println(getDisplayTime(date));
}
}