几秒前,几分钟前,几小时前,几天前,几月前,几年前的java实现
代码下载:http://www.zuidaima.com/share/1562038902000640.htm
在stackoverflow上找了一个简单的,改写了下符合需求,给大家分享下。
package com.zuidaima;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class RelativeDateFormat {private static final long ONE_MINUTE = 60000L;private static final long ONE_HOUR = 3600000L;private static final long ONE_DAY = 86400000L;private static final long ONE_WEEK = 604800000L;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 = "天前";private static final String ONE_MONTH_AGO = "月前";private static final String ONE_YEAR_AGO = "年前";public static void main(String[] args) throws ParseException {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:m:s");Date date = format.parse("2013-11-11 18:35:35");System.out.println(format(date));}public static String format(Date date) {long delta = new Date().getTime() - date.getTime();if (delta < 1L * ONE_MINUTE) {long seconds = toSeconds(delta);return (seconds <= 0 ? 1 : seconds) + ONE_SECOND_AGO;}if (delta < 45L * ONE_MINUTE) {long minutes = toMinutes(delta);return (minutes <= 0 ? 1 : minutes) + ONE_MINUTE_AGO;}if (delta < 24L * ONE_HOUR) {long hours = toHours(delta);return (hours <= 0 ? 1 : hours) + ONE_HOUR_AGO;}if (delta < 48L * ONE_HOUR) {return "昨天";}if (delta < 30L * ONE_DAY) {long days = toDays(delta);return (days <= 0 ? 1 : days) + ONE_DAY_AGO;}if (delta < 12L * 4L * ONE_WEEK) {long months = toMonths(delta);return (months <= 0 ? 1 : months) + ONE_MONTH_AGO;} else {long years = toYears(delta);return (years <= 0 ? 1 : years) + ONE_YEAR_AGO;}}private static long toSeconds(long date) {return date / 1000L;}private static long toMinutes(long date) {return toSeconds(date) / 60L;}private static long toHours(long date) {return toMinutes(date) / 60L;}private static long toDays(long date) {return toHours(date) / 24L;}private static long toMonths(long date) {return toDays(date) / 30L;}private static long toYears(long date) {return toMonths(date) / 365L;}}
需要的可以下载,可以自己修改测试代码测试。
转载请务必注明出处
几秒前,几分钟前,几小时前,几天前,几月前,几年前的java实现相关推荐
- java获取前五分钟时间_使用日期操作类(Calendar)获得几秒、几分钟、几小时之前的时间...
public String dealDate(String case_time){ // 日期操作类 Calendar calendar = Calendar.getInstance(); // 当前 ...
- oracle 系统时间 加 一秒、一分钟、一小时、一天
trunc(sysdate,'yyyy-mm-dd hh24:mi') 是取当前系统时间. +1/24 就是加上一小时. 以此类推 sysdate+1 加一天 sysdate+1/24 加1小时 sy ...
- flutter 几秒前, 几分钟前, 几小时前, 几天前...
Show me the code!!! class RelativeDateFormat {static final num ONE_MINUTE = 60000;static final num O ...
- C#:把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前
C# public string DateStringFromNow(DateTime dt) { TimeSpan span = DateTime.Now - dt; if (span.TotalD ...
- mysql 取前几分钟和几秒,mysql 数据库取前后几秒 几分钟 几小时 几天的语句
mysql 数据库取前后几秒 几分钟 几小时 几天的语句 发布时间:2020-09-24 12:48:06 来源:脚本之家 阅读:99 作者:mdxy-dxy 取当前时间: select curren ...
- vue实现Cnode具体有axios分页请求 | filters(过滤器)解决时间转秒前 分钟前 小时前 月前 年前
vue实现axios分页请求 [注意点] 1.可以根据 对象名[对象中的属性]来获取相对的属性值 2.有类名还要添加类名: :class="['tab-item',{active:activ ...
- PHP人性化时间显示,实现多少秒前,多少分钟前,多少小时前
现在很多网站的时间显示都很人性化,不再是单纯的年月日时分秒,而是根据数据更新的时间与当前时间进行比较,实现多少秒前,多少分钟前,多少小时前! //人性化时间显示 function formatTime ...
- python获取时间————前一天后一天前一小时后一小时前一分钟后一分钟前一秒后一秒
SSRQ='2022-04-08' SSRQ_datetime= datetime.datetime.strptime(SSRQ,'%Y-%m-%d') 字符串转换为时间类型 导入包 import d ...
- java几秒前,几分钟前,几小时前,几天前,几月前,几年前的实现
代码下载:http://www.zuidaima.com/share/1562038902000640.htm package com.zuidaima;import java.text.ParseE ...
- 微信小程序-将时间转换成几秒前 几分钟前 几小时前 几天前等时间格式
描述: 显示消息时间为 几天前 几小时前 几分钟前:同时一年以上的日期直接显示YYY:MM:DD形式 效果: 方法实现: 可以在utils目录下建一个存放公共方法的文件,将getDateDiff方法放 ...
最新文章
- Ubuntu 16.04 LTS GNOME版本下载
- Java中的JSON
- python基础知识面试题-Python基本面试解答由浅入深—简答题
- Java集合源码学习(五)几种常用集合类的比较
- 搭建简易Linux局网服务器
- Python 常见的17个错误分析
- 表的操作(Oracle和DB2)
- leetcode 658. Find K Closest Elements | 658. 找到 K 个最接近的元素(二分查找+双指针)
- WPF--ComboBox数据绑定
- 高晓松侃5G!2019开年大讲揭示运营商的秘密
- java socket发送定长报文_socket编程
- Linux文件系统不是必须的,而是必要的!
- 消除数据孤岛,华为云DRS让一汽红旗ERP系统数据活起来
- 蓝桥杯 基础练习 回形取数
- linux 后台进程管理,Linux 后台进程管理利器 Supervisor
- 模仿企鹅FM播放主页面滑动动态改变各视图的大小
- Imagewarping变形算法研究---MLSR(Nonrigid image deformation using moving regularized least quares)
- 驱动人生带你全方位领略微软Windows 11的魅力
- 基于易语言,PC端微信多开
- Catalan卡特兰数
热门文章
- coap 返回版本信息_Californium开源框架分析入门篇:
一个基于 Java 实现的 CoAP 技术框架...
- Kali Linux渗透测试之扫描工具——Nikto
- EJB3.0 查询语言JPQL用法
- gawk和mawk的区别笔记221108
- springBoot守护线程
- idea 2017.3 破解教程
- 阿里Maven中心仓库配置
- SDN是什么?详解软件定义网络技术原理与应用
- 利用fluxion进行WIFI钓鱼攻击的实验
- 一看就懂的 CUDA安装教程及Pytorch GPU版本安装教程