实例如下:

package bys.utils;

import java.util.Date;

/**

* Created by toutou on 2015/3/23.

*/

public class DateHelper {

public static final long ONE_MINUTE = 60000L;

public static final long ONE_HOUR = 3600000L;

public static final long ONE_DAY = 86400000L;

public 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 = "年前";

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;

}

public static String getPastTime(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;

}

}

}

调用示例:

String time = DateHelper.getPastTime(Date.from(item.getCreateTime().atZone(ZoneId.systemDefault()).toInstant()));

以上这篇java 获取日期的几天前,几个月前和几年前的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

java获取指定年月往前推12个月的年月_java 获取日期的几天前,几个月前和几年前的实例...相关推荐

  1. java 月第一天_java获取当前月第一天和最后一天

    获取当前月第一天: /** * 获取当前月第一天 * @param month * @return */ public static String getFirstDayOfMonth(int mon ...

  2. java获取指定倒退或向前的时间工具类

    最近,业务中碰见需要获取指定的时间,比如向前倒推一定的时间,向后倒推一定的时间,此次记载一下处理的相关代码逻辑, //获取当前时间向后推一天public static String getDayAft ...

  3. Java获取指定月份第一周第一天

    Java获取指定月份第一周第一天 思路: 1.获取当前月份第一天 2.获取第一天对应周几 3.根据周几减去对应天数得到指定日期 @Testpublic void test2(){Date lastWe ...

  4. java日期 指定时间往前推n天或者往后推n天

    获取指定时间往前推n天或者往后推n天 有两种时间格式,一种是yyyy-MM-dd,一种是yyyy-MM-dd HH:mm:ss 第一种:yyyy-MM-dd /*** 指定时间往前或往后推n天** @ ...

  5. 【Linux 内核】线程调度示例一 ② ( 获取指定调度策略的最大和最小优先级 | 代码示例 )

    文章目录 一.获取指定调度策略的最大和最小优先级函数 二.获取指定调度策略的最大和最小优先级代码示例 一.获取指定调度策略的最大和最小优先级函数 Linux 内核中 , 通过下面 222 个函数 , ...

  6. python读取文件夹下特定的文件_python os模块获取指定文件夹下所有文件名

    本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. python os模块获取指定文件夹下所有文件名 第一种方法使用os.walk(): os.walk() 方法 ...

  7. java 删除指定文件夹内所有文件

    该内容来自于:java 删除指定文件目录_IT_choshim的博客-CSDN博客_java删除指定文件 //删除文件夹     //param folderPath 文件夹完整绝对路径     pu ...

  8. JS 获取指定 Cookie 值

    我们知道在 JS 中,只能通过 document.cookie 获取到当前网页的 Cookie,返回的是以 ; 隔开的 Cookie 键值对字符串.在日常开发中,可以使用 js-cookie 包来操作 ...

  9. Java获取指定年月的开始时间和结束时间

    文章目录 Java获取指定年月的开始时间和结束时间 Java获取指定年月的开始时间和结束时间 // 获取指定年指定月的开始天数和结束天数public static Map<String,Date ...

最新文章

  1. MVC中session创建并获取问题
  2. python中的装饰器
  3. 华为买买买!5000万美元收购一家安防技术公司 看中的是这个!
  4. dataframe修改数据_利用Python进行数据分析(语法篇)
  5. linux下oracle10g安装配置说明,Linux下oracle10g安装配置说明(ZT)
  6. [MySQL FAQ]系列 -- MySQL怎么有时候像是多进程,有时候却是多线程
  7. 用户界面设计参考 (ZT)
  8. 【黑金动力社区】【bf531 体验板教程】第六章 可编程标志口(八)
  9. eclipse基础实用教程
  10. java 九宫格数独_玩转数独之九宫数独进阶技巧
  11. 正弦波叠加成及波的分解
  12. Python爬取第一电影天堂最新电影(5000多部)代码实例(一)
  13. html等待,休眠代码,HTML DOM closest()用法及代码示例
  14. 服务器远程登录用户在哪查看,RAKsmart VNC用户登录信息在哪查看?
  15. 单机魔兽世界服务器显示不兼容,官网公告:解决登陆游戏设备驱动不兼容问题...
  16. MySQL数素数_素数是什么意思?
  17. 苏宁大数据部门前端面试
  18. linux命令-- Unix crontab at 定时任务命令 .
  19. Python爬取磁力链信息
  20. 试题 算法训练 进击的青蛙

热门文章

  1. OGG迁移大库注意要点之impdp导入产生大量归档
  2. 超干货议程发布 | 2021全球分布式云大会 · 上海站 重磅来袭
  3. 实战经验:如何定位控制文件热点块,即读取延迟高的块所在的ASM磁盘
  4. 关于Oracle RAC调整网卡MTU值的问题
  5. 区块链交易隐私如何保证?华为零知识证明技术实战解析
  6. 【“互联网+”大赛华为云赛道】API命题攻略:厘清三步解题思路,用好开发工具
  7. 应对全场景AI框架部署挑战,MindSpore“四招”让你躺平
  8. 带你梳理Roach全量恢复的整体流程
  9. 2天完成17TB数据量迁移,华为云数据库是如何做的?
  10. HC大会,华为联合合作伙伴发布一站式物联网IoT开发工具小熊派BearPi