近段时间,由于项目需要,需要做资讯类APP,其中,要做一个排序列表,列表中每个item中的时间值需要与当前设备的时间作比较,得到一些比较人性化的时间提醒。先把效果图放上:
代码实现:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 时间工具类
* @author ck
* 2013年11月16日 23:36:40
*/
public class DateUtil
{
public static final String PATTERN_1 = "MM-dd HH:mm";
public static final String PATTERN_2 = "yyyy-MM-dd HH:mm";
public static final String PATTERN_3 = "yyyy-MM-dd";
/**
* 得到一定模式的提示时间
* @param time
* @param pattern
* @return
*/
public static String getPatternTime(long time, String pattern)
{
SimpleDateFormat format = new SimpleDateFormat(pattern);
return format.format(new Date(time));
}
/**
* 得到比较之后的时间差值
* @param date
* @return
*/
public static String getCompareTime(long date)
{
StringBuffer sb = new StringBuffer();
long minMill = 60 * 1000;//1min
long hourMill = 60 * minMill;//1hour
long dayMill = 24 * hourMill;//1day
//当前时间
long now = Calendar.getInstance().getTimeInMillis();
//相减之后时间差
long deltime = now - date;
long day = deltime / dayMill;
if(day > 0)
{//大于1天
if(day <= 3)
sb.append(day + "天前");
else
sb.append(getPatternTime(date, PATTERN_3));
}
else
{//小于1天
long hour = deltime / hourMill;
if(hour > 0)
{//大于1小时
sb.append(hour + "小时前");
}
else
{//小于1小时
long minute = deltime / minMill;
if(minute > 0)
{//大于1分钟
sb.append(minute + "分钟前");
}
else
{//小于1分钟
sb.append("刚刚");
}
}
}
return sb.toString();
}
}
如果代码中有什么问题,或者你有什么意见,欢迎指定~
已有 0 人发表留言,猛击->> 这里<<-参与讨论
ITeye推荐