仿微博,新闻资讯类APP中列表中时间提示

10 篇文章 0 订阅
近段时间,由于项目需要,需要做资讯类APP,其中,要做一个排序列表,列表中每个item中的时间值需要与当前设备的时间作比较,得到一些比较人性化的时间提醒。先把效果图放上:

[img]http://dl2.iteye.com/upload/attachment/0091/2308/40d32b7c-33f2-349a-ba7e-4e6cb9a06948.jpg[/img]

代码实现:
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();
}
}


[size=large][color=red]如果代码中有什么问题,或者你有什么意见,欢迎指定~[/color][/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值