类似于朋友圈发布时间格式化工具,一秒前,一分钟前,一小时前,昨天,一天前…

package com.walking.common.utils;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;/*** 朋友圈发布时间格式化工具类** @Author Lizhou*/
public class RelativeDateFormat {/*** 一分钟*/private static final long ONE_MINUTE = 60000L;/*** 一小时*/private static final long ONE_HOUR = 3600000L;private static final String ONE_SECOND_AGO = "秒前";private static final String ONE_MINUTE_AGO = "分钟前";private static final String ONE_HOUR_AGO = "小时前";private static final String ONE_DAY_AGO = "天前";public static void main(String[] args) throws ParseException {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:m:s");Date date = format.parse("2021-06-07 10:35:35");System.out.println(format(date));}/*** 时间格式化** @param date* @return*/public static String format(Date date) {// 计算出相差天数int i = differentDays(date, new Date());// 同一天if (0 == i) {// 计算出时间差long delta = new Date().getTime() - date.getTime();// 小于一分钟if (delta < 1L * ONE_MINUTE) {long seconds = toSeconds(delta);return (seconds <= 0 ? 1 : seconds) + ONE_SECOND_AGO;}// 小于一小时else if (delta < 1L * ONE_HOUR) {long minutes = toMinutes(delta);return (minutes <= 0 ? 1 : minutes) + ONE_MINUTE_AGO;}// 小于24小时else if (delta < 24L * ONE_HOUR) {long hours = toHours(delta);return (hours <= 0 ? 1 : hours) + ONE_HOUR_AGO;}}// 不同一天else {if (1 == i) {return "昨天";}// 几天前else if (3 >= i) {return i + ONE_DAY_AGO;}}// 格式化时间return getYmdHm(date);}/*** 获取秒** @param date* @return*/private static long toSeconds(long date) {return date / 1000L;}/*** 获取分钟** @param date* @return*/private static long toMinutes(long date) {return toSeconds(date) / 60L;}/*** 获取小时** @param date* @return*/private static long toHours(long date) {return toMinutes(date) / 60L;}/*** 时间格式化,yyyy-MM-dd HH:mm*/public static String getYmdHm(Date date) {DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");return df.format(date);}/*** 获取天数** @param date1* @param date2* @return*/public static int differentDays(Date date1, Date date2) {Calendar cal1 = Calendar.getInstance();cal1.setTime(date1);Calendar cal2 = Calendar.getInstance();cal2.setTime(date2);int day1 = cal1.get(Calendar.DAY_OF_YEAR);int day2 = cal2.get(Calendar.DAY_OF_YEAR);int year1 = cal1.get(Calendar.YEAR);int year2 = cal2.get(Calendar.YEAR);// 不同一年if (year1 != year2) {int timeDistance = 0;for (int i = year1; i < year2; i++) {//闰年if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {timeDistance += 366;}//不是闰年else {timeDistance += 365;}}return timeDistance + (day2 - day1);}// 同一年else {return day2 - day1;}}
}

如您在阅读中发现不足,欢迎留言!!!

朋友圈发布时间格式化工具类相关推荐

  1. php 朋友圈留言,php实例-PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)...

    我们大部分人都发过动态,想必都知道发动态.回复评论.删除动态的整个过程,那么这个功能是如何实现的呢?下面小编给大家带来了实例代码,对PHP仿qq空间或朋友圈发布动态.评论动态.回复评论.删除动态或评论 ...

  2. Android实现仿微信朋友圈发布动态(拍照、图库选择、照片压缩、显示、保存、缩略图、点击缩略图删除对应文件等)

    原址: http://blog.csdn.net/zhang3776813/article/details/52092591 /*** 仿微信朋友圈发布动态* 拍照或图库选择 * 压缩图片并保存**/ ...

  3. php mysql仿微信朋友圈评论表设计_PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)...

    我们大部分人都发过动态,想必都知道发动态.回复评论.删除动态的整个过程,那么作为初学者,要模仿这些功能有点复杂的,最起码表的关系得弄清楚~~ 先把思路理一下: (1)用户登录,用session读取当前 ...

  4. Android实现仿微信朋友圈发布动态(拍照、图库选择、照片压缩、显示、保存、缩略图、点击缩略图删除对应文件等)附源码

             原创作品,转载请注明出处:http://blog.csdn.net/zhang3776813/article/details/52092591 最近项目需求中要用到类似微信朋友圈发布 ...

  5. Java工具类(18)—时间格式化工具类

    Java工具类(18)-时间格式化工具类 时间格式化工具,一秒前,一分钟前,一小时前,昨天,一天前 package com.awifi.cloudnative.container.rbac.user. ...

  6. iphone android 朋友圈,最近很火的微信空白朋友圈发布教程!安卓、苹果通用!

    原标题:最近很火的微信空白朋友圈发布教程!安卓.苹果通用! 各位小伙伴,晚上好啊!已经一个月没有更新了,这篇文章几天之前就要推送了,一直拖到现在,真是名副其实的"拖更王". 微信作 ...

  7. Flutter高仿微信-第16篇-朋友圈-发布作品(图片)

     Flutter高仿微信系列共59篇,从Flutter客户端.Kotlin客户端.Web服务器.数据库表结构.Xmpp即时通讯服务器.视频通话服务器.腾讯云服务器全面讲解. 详情请查看 效果图: 实现 ...

  8. android仿微信发布动态功能,Android仿微信朋友圈发布动态功能

    一.前言 应工作上的要求,需要有一个类似于微信朋友圈发动态上传图片的功能,想起曾经已经做过了,但奈何不忍看自己以前写的代码的惨状,觉得重新封装一个使用方便,易于维护的类似功能的类,自己之后用起来也顺手 ...

  9. 微信朋友圈长视频服务器地址,微信朋友圈发布60秒+长视频教程

    最近看到一些朋友在求微信朋友圈发长视频方法,下面给大家大概解释一哈: 1.下载好趣推等能压缩视频软件的APP,注册登录,打开微信小视频功能.ps:不用开什么vip,普通用户可以使用这个功能 2.导入你 ...

最新文章

  1. 算法导论笔记:17摊还分析
  2. Python_day4
  3. Shell 脚本——测试命令
  4. hadoop碰到的 一个问题
  5. golang商城_Golang——简单是终极的成熟
  6. css - 给图片添加蒙版
  7. React-Native入门(2)-简单阐述跳转
  8. Sass--伪类嵌套
  9. Jmeter 安装各个历史版本
  10. 海康rtsp视频流媒体服务器搭建(去除flash插件):rtsp > nginx-rtmp > http-flv > flv.js
  11. Winows笔记本设置合上盖子不休眠
  12. 第九届蓝桥杯 省赛 C语言A组
  13. android 播放 优酷视频
  14. LitePal 数据库基本操作
  15. 崩坏3服务器维护2月8号,崩坏3 3.9版本「逐暗星辉」更新维护通知
  16. Web前端开发技术:Vue开发基础(2)
  17. 计算机主机接电视机,电脑连接电视,详细教您电脑连接电视当显示器的方法
  18. python中小数_如何在Python中乘以小数
  19. 五轮技术+两轮hr,历经7面通过阿里测试岗面试,27K*16薪,成功上岸...
  20. html中3d哪个方向是x轴,浅谈css 3d与空间坐标轴

热门文章

  1. 06-测试用例设计方法-场景法
  2. oracle实验六杨艳华_工作报告之oracle数据库实验报告
  3. 【计算机网络】—— 封装成帧 透明传输
  4. 建筑学计算机快速设计,大二建筑学建筑设计第一次用电脑出图,不知道详细的制图步骤。就是需要用到那些软件。流程怎样?...
  5. OpenGL学习——计算机图形学作业:简单的室内场景
  6. 总结Linux系统压缩和解压文件指令——gzip/gunzip 指令、zip/unzip 指令、tar 指令
  7. 小牛电动7200万众筹神话如何做到?
  8. apriori算法c++实现_经典数据结构与算法(四):Python/C/C ++实现队列类型双端队列数据结构...
  9. python3打包成apk_ionic3 从创建到打包成apk
  10. 中科院算法试题 陈玉福