/**
 * 日期处理工具类
 * 
 * @author whm
 *
 */
public class DateUtils {
public static final String YMD = "yyyyMMdd";
public static final String YMD_YEAR = "yyyy";
public static final String YMD_BREAK = "yyyy-MM-dd";
public static final String YMDHMS = "yyyyMMddHHmmss";
public static final String YMDHMS_BREAK = "yyyy-MM-dd HH:mm:ss";
public static final String YMDHMS_BREAK_HALF = "yyyy-MM-dd HH:mm";

/**
* 计算时间差
*/
public static final int CAL_MINUTES = 1000 * 60;
public static final int CAL_HOURS = 1000 * 60 * 60;
public static final int CAL_DAYS = 1000 * 60 * 60 * 24;

/**
* 获取当前时间格式化后的值

* @param pattern
* @return
*/
public static String getNowDateText(String pattern){
SimpleDateFormat sdf = getSimpleDateFormat(pattern);
return sdf.format(new Date());
}

/**
* 获取日期格式化后的值

* @param date
* @param pattern
* @return
*/
public static String getDateText(Date date, String pattern){
SimpleDateFormat sdf = getSimpleDateFormat(pattern);
return sdf.format(date);
}

/**
* 字符串时间转换成Date格式

* @param date
* @param pattern
* @return
* @throws ParseException
*/
public static Date getDate(String date, String pattern) throws ParseException{
SimpleDateFormat sdf = getSimpleDateFormat(pattern);
return sdf.parse(date);
}

private static SimpleDateFormat getSimpleDateFormat(String pattern){
return new SimpleDateFormat(pattern);
}

/**
* 获取时间戳
* @param date
* @return
*/
public static Long getTime(Date date){
return date.getTime();
}

/**
* 计算时间差
* @param startDate
* @param endDate
* @param calType 计算类型,按分钟、小时、天数计算
* @return
*/
public static int calDiffs(Date startDate, Date endDate, int calType){
Long start = DateUtils.getTime(startDate);
Long end = DateUtils.getTime(endDate);
int diff = (int) ((end - start)/calType);
return diff;
}

/**
* 计算时间差值以某种约定形式显示

* @param startDate
* @param endDate
* @return
*/
public static String timeDiffText(Date startDate, Date endDate){
int calDiffs = DateUtils.calDiffs(startDate, endDate, DateUtils.CAL_MINUTES);
if(calDiffs == 0){
return "刚刚";
}
if(calDiffs < 60){
return calDiffs + "分钟前";
}
calDiffs = DateUtils.calDiffs(startDate, endDate, DateUtils.CAL_HOURS);
if(calDiffs < 24){
return calDiffs + "小时前";
}
if(calDiffs < 48){
return "昨天";
}
return DateUtils.getDateText(startDate, DateUtils.YMDHMS_BREAK_HALF);
}

/**
* 显示某种约定后的时间值,类似微信朋友圈发布说说显示的时间那种

* @param date
* @return
*/
public static String showTimeText(Date date){
return DateUtils.timeDiffText(date, new Date());
}

public static void main(String[] args) throws ParseException {
Date start = DateUtils.getDate("2017-07-05 10:54", DateUtils.YMDHMS_BREAK_HALF);
System.out.println(DateUtils.showTimeText(start));
}
}

Java计算时间,可以像微信朋友圈那样显示发布的时间相关推荐

  1. 如何实现分享网站文章到微信朋友圈时显示指定缩略图或LOGO

    当下朋友圈很火,很多企业都将微信朋友圈作为品牌传播的途径,经常会发一些精彩的文章到微信朋友圈供大家自发传播,这样的想法很好,对于优质的内容,网友们也乐于转发与朋友们分享,对品牌宣传与推广确实是有好处的 ...

  2. 如何实现分享链接到微信朋友圈时显示自定义LOGO以及名称介绍

    当下朋友圈很火,很多企业都将微信朋友圈作为品牌传播的途径,经常会发一些精彩的文章到微信朋友圈供大家自发传播,这样的想法很好,对于优质的内容,网友们也乐于转发与朋友们分享,对品牌宣传与推广确实是有好处的 ...

  3. 仿微信朋友圈日期显示 时间戳格式化

    ...调用 long time=convert2long("2017-03-0116:32:34"); textview.setText(getFormatTime(time)); ...

  4. Android仿微信朋友圈2自定义点赞评论弹框

    最近在做类似微信朋友圈点赞评论的功能,有个点赞评论弹框交互,感觉效果很好,点击评论按钮弹框从按钮左边弹出,遇到了3个问题(弹出动画不对.弹框布局没有适配.弹出的位置显示不对),动画和布局好解决,弹出的 ...

  5. 怎么在微信朋友圈中发布长视频,不妨来看看,怎样将长视频发布到朋友圈

    如今我们大家在平日的生活中或者是工作中都会用到的社交软件微信,对于这款软件它可以让我们很便捷的在上面进行聊天还可以在朋友圈上面发布一些说说文章.视频来记录生活.那么对于在朋友圈中发布视频,微信朋友圈中 ...

  6. 我关闭了微信朋友圈,把依赖感留给了身边人

    自从2017年关闭了朋友圈不发动态.不看动态一年多之后,发现微信朋友圈.QQ空间等虚拟世界正在慢慢侵蚀我的现实生活,不过这也间接说明了这些产品的成功之处,它让人在生活.工作中产生了确定性依赖.以下是我 ...

  7. Android仿微信朋友圈3评论输入框及点击外部和列表滑动时隐藏输入框和键盘解决方法

    接着上一篇的评论点赞弹框之后,这次来说说微信的评论输入框,点击屏幕外部评论框和键盘消失,滑动列表时输入框和键盘也要消失,这里不是说一定要舔微信啥的,只是单纯从技术角度出发,分析原理和实现,解决我们自己 ...

  8. h5分享到朋友圈_微信朋友圈创意招聘广告制作方法 H5模板

    微信朋友圈招聘广告发布出去那么久了,为啥还是没有求职者前来应聘呢?那么一定是你的招聘广告不够创意,所以没能吸引求职者的目光.如何才能制作一个有创意更吸引求职者眼球的招聘广告呢?现在你只需通过制作平台的 ...

  9. android朋友圈发文字换行,微信朋友圈全文展开 朋友圈文字怎么换行朋友圈发多行文字...

    微信朋友圈全文展开 朋友圈文字怎么换行朋友圈发多行文字 微信朋友圈全文展开 腾讯更新微信5.2.1版本,新版本特色有两个:发朋友圈时,可以附上你所在餐馆和景点的位置和名字.具体是情况是,用户在发送朋友 ...

  10. 移动共享开发(二)各平台SSO(免登录)配置 微信和微信朋友圈、QQ、QQ空间、新浪微博、腾讯微博、人人

    SSO名词解释 : SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 例如用户已经登录新浪微博客户端,使用SSO授权 ...

最新文章

  1. HBase 系统架构
  2. 日志打印的正确姿势!
  3. java连接access驱动_Java 连接Access
  4. electron-vue解决打包错误、无法调用出开发者工具(亲测有效)
  5. Docker Jenkins Node(一):初步构建
  6. 【译】Angular Elements 及其运作原理
  7. kafka知识 --kafka权威指南
  8. 夏普电视账号服务器异常,夏普电视故障通病维修案例,你中了几个?
  9. Garbled Circuits介绍 - 1 引言
  10. firewalld 规则配置
  11. VPS安装Docker、docker-compose
  12. 微信开发获取签名wx.config
  13. python爬千图网高清图片
  14. Talk | 清华大学陈晓宇苏黎世联邦理工黄嘉伟 :基于实际应用的强化学习
  15. java 幻影_Java之抽象
  16. 计算机常用软件英文读音,学习英文在线发音的软件有哪些?宝妈推荐的这些超级实用...
  17. Model Inversion Attacks that Exploit Confidence Informati on and Basic Countermeasures 阅读心得
  18. 惠普电脑如何重装Linux系统,如何把惠普下的Linux操作系统换为windows 7
  19. 论文阅读:FACIAL: Synthesizing Dynamic Talking Face with Implicit Attribute Learning
  20. 计算机二级报名时间2020年12月江苏省,2020年12月计算机二级考试报名时间及考试安排...

热门文章

  1. Minio分布式文件系统学习笔记
  2. 主流手机CPU及机型介绍!手机CPU生产厂商介绍!高通QSD8250、MSM8255、TI OMAP 3630、nVIDIA Tegra 2介绍
  3. 公式编辑器中如何修改字体?
  4. 2014腾讯校园招聘回顾
  5. OSChina 周二乱弹 —— 小哥哥,你可以教我写代码吗
  6. 群发邮件软件和邮件群发工具哪个好?如何群发邮件不进入垃圾箱
  7. 可该变某一属性的GAN:Hijack-GAN
  8. 双11,一大波建站优惠,你还不来网站建设吗?
  9. ahu-557容斥原理
  10. Spark小文件合并