欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

仿微博,新闻资讯类app中列表中时间揭示

更新时间: 2014-01-05 02:33:57 责任编辑: Author_N1

 

仿微博,新闻资讯类APP中列表中时间提示
近段时间,由于项目需要,需要做资讯类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();
	}
}


如果代码中有什么问题,或者你有什么意见,欢迎指定~
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:33:57
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11497/
本文WWW.DOC100.NET DOC100.NET版权所有。