如何将时间改为显示:几天前,几小时前,或者几分钟前
2016-04-11 10:17
477 查看
http://www.oschina.net/question/657074_89320#tags_nav
如何将时间改为显示:几天前,几小时前,或者几分钟前
如这样的 最后发帖:2011-01-05 12:33
要改成这样怎么实现:
最后发表: 2分钟前
最后发表: 28秒前
最后发表: 2025-04-18
最后发表: 2小时前
最后发表: 2天前
解答:
创建时间-当前时间
如果在60秒之内显示多少秒之前,
如果大于60秒在60分之内,显示多少分
……以此类推
timemap加减
个人做法是保存时间戳,然后在前端用jq插件做转换,比如 smart-time-ago
有一个后台方法专门转换的。
osc android手机端里开源代码就有
如何将时间改为显示:几天前,几小时前,或者几分钟前
如这样的 最后发帖:2011-01-05 12:33
要改成这样怎么实现:
最后发表: 2分钟前
最后发表: 28秒前
最后发表: 2025-04-18
最后发表: 2小时前
最后发表: 2天前
解答:
创建时间-当前时间
如果在60秒之内显示多少秒之前,
如果大于60秒在60分之内,显示多少分
……以此类推
timemap加减
个人做法是保存时间戳,然后在前端用jq插件做转换,比如 smart-time-ago
有一个后台方法专门转换的。
时间格式化类库 PrettyTime
官方说支持超过25种语言,可用设置语言,默认是读取系统语言设置
OSC应该是用的前端做的,去年@红薯 有分享出来这个日期JQ插件osc android手机端里开源代码就有
private final static ThreadLocal<SimpleDateFormat> dateFormater2 = new ThreadLocal<SimpleDateFormat>() { @Override protected SimpleDateFormat initialValue() { return new SimpleDateFormat("yyyy-MM-dd"); } }; /** * 以友好的方式显示时间 * @param sdate * @return */ public static String friendly_time(String sdate) { Date time = toDate(sdate); if(time == null) { return "Unknown"; } String ftime = ""; Calendar cal = Calendar.getInstance(); //判断是否是同一天 String curDate = dateFormater2.get().format(cal.getTime()); String paramDate = dateFormater2.get().format(time); if(curDate.equals(paramDate)){ int hour = (int)((cal.getTimeInMillis() - time.getTime())/3600000); if(hour == 0) ftime = Math.max((cal.getTimeInMillis() - time.getTime()) / 60000,1)+"分钟前"; else ftime = hour+"小时前"; return ftime; } long lt = time.getTime()/86400000; long ct = cal.getTimeInMillis()/86400000; int days = (int)(ct - lt); if(days == 0){ int hour = (int)((cal.getTimeInMillis() - time.getTime())/3600000); if(hour == 0) ftime = Math.max((cal.getTimeInMillis() - time.getTime()) / 60000,1)+"分钟前"; else ftime = hour+"小时前"; } else if(days == 1){ ftime = "昨天"; } else if(days == 2){ ftime = "前天"; } else if(days > 2 && days <= 10){ ftime = days+"天前"; } else if(days > 10){ ftime = dateFormater2.get().format(time); } return ftime; } /** * 将字符串转位日期类型 * @param sdate * @return */ public static Date toDate(String sdate) { try { return dateFormater.get().parse(sdate); } catch (ParseException e) { return null; } }
相关文章推荐
- java多线程批量执行的时限问题
- java new synchronized
- mysql bigint 取值范围
- A2W和W2A宏可能引起栈内存溢出
- 验证数字的正则表达式集
- android Mediaplayer各种属性和方法简单介绍
- 选择排序
- Machine Learning第九周笔记:异常检测与推荐系统
- MySQL数据库insert和update语句
- 5个典型的JavaScript面试题
- [JS] save txt file
- Anaconda Install
- lambda小结
- 使用anddroid studio编译报错: Error:Execution failed for task ':mergeDebugResources'.
- 关于人工智能和人类未来的吐槽
- Linux strace命令的妙用
- Android开发,超出屏幕范围的控件显示解决办法
- 邮件功能开发--JavaMail
- Oracle GI 日志收集工具 - TFA 简介
- 报表软件JS开发引用HTML DOM的windows对象