`
溪山行旅
  • 浏览: 2399 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java计算时间工具类

阅读更多
package com.date;
02

03
import java.text.ParseException;
04
import java.text.SimpleDateFormat;
05
import java.util.Date;
06

07
public class RelativeDateFormat {
08

09
    private static final long ONE_MINUTE = 60000L;
10
    private static final long ONE_HOUR = 3600000L;
11
    private static final long ONE_DAY = 86400000L;
12
    private static final long ONE_WEEK = 604800000L;
13

14
    private static final String ONE_SECOND_AGO = "秒前";
15
    private static final String ONE_MINUTE_AGO = "分钟前";
16
    private static final String ONE_HOUR_AGO = "小时前";
17
    private static final String ONE_DAY_AGO = "天前";
18
    private static final String ONE_MONTH_AGO = "月前";
19
    private static final String ONE_YEAR_AGO = "年前";
20

21
    public static void main(String[] args) throws ParseException {
22
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:m:s");
23
        Date date = format.parse("2013-11-11 18:35:35");
24
        System.out.println(format(date));
25
    }
26

27
    public static String format(Date date) {
28
        long delta = new Date().getTime() - date.getTime();
29
        if (delta < 1L * ONE_MINUTE) {
30
            long seconds = toSeconds(delta);
31
            return (seconds <= 0 ? 1 : seconds) + ONE_SECOND_AGO;
32
        }
33
        if (delta < 45L * ONE_MINUTE) {
34
            long minutes = toMinutes(delta);
35
            return (minutes <= 0 ? 1 : minutes) + ONE_MINUTE_AGO;
36
        }
37
        if (delta < 24L * ONE_HOUR) {
38
            long hours = toHours(delta);
39
            return (hours <= 0 ? 1 : hours) + ONE_HOUR_AGO;
40
        }
41
        if (delta < 48L * ONE_HOUR) {
42
            return "昨天";
43
        }
44
        if (delta < 30L * ONE_DAY) {
45
            long days = toDays(delta);
46
            return (days <= 0 ? 1 : days) + ONE_DAY_AGO;
47
        }
48
        if (delta < 12L * 4L * ONE_WEEK) {
49
            long months = toMonths(delta);
50
            return (months <= 0 ? 1 : months) + ONE_MONTH_AGO;
51
        } else {
52
            long years = toYears(delta);
53
            return (years <= 0 ? 1 : years) + ONE_YEAR_AGO;
54
        }
55
    }
56

57
    private static long toSeconds(long date) {
58
        return date / 1000L;
59
    }
60

61
    private static long toMinutes(long date) {
62
        return toSeconds(date) / 60L;
63
    }
64

65
    private static long toHours(long date) {
66
        return toMinutes(date) / 60L;
67
    }
68

69
    private static long toDays(long date) {
70
        return toHours(date) / 24L;
71
    }
72

73
    private static long toMonths(long date) {
74
        return toDays(date) / 30L;
75
    }
76

77
    private static long toYears(long date) {
78
        return toMonths(date) / 365L;
79
    }
80

81
}
分享到:
评论

相关推荐

    JAVA时间工具类(计算法定工作日工时等)

    JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...

    java 请假天数计算工具类

    Java 请假天数计算工具类是企业信息化管理中常见的需求,尤其在OA(办公自动化)系统中,用于准确计算员工的假期天数。这个工具类的设计通常涉及到日期处理、工作日计算以及根据公司规则进行调整等多个方面。在这个...

    【强2】30个java工具类

    [工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页 .java.txt [工具类] MD5 .java.txt [工具类] MD5强化版 .java.txt [工具类] MD5超强化版 .java.txt [工具类] XML 实用工具类 .java...

    java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒

    这篇博客文章“java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒”提供了一个实用的工具类,帮助开发者更方便地处理日期和时间差异。下面将详细解释这个工具类中的关键知识点。 1. **Java...

    java工具类集合

    Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...

    30个java工具类

    [工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页 .java.txt [工具类] MD5 .java.txt [工具类] MD5强化版 .java.txt [工具类] MD5超强化版 .java.txt [工具类] XML 实用工具类 .java...

    java操作时间工具类

    Java操作时间工具类是开发者日常工作中经常会用到的模块,特别是在处理日期和时间相关的业务逻辑时。本工具类主要是为了方便地对日期和时间进行格式化、比较、计算等操作,提高开发效率。下面我们将详细探讨Java中...

    常用的java工具类

    2.[工具类] Java中计算任意两个日期之间的工作天数 .java 3.[工具类] MD5 .java 4.[工具类] 时间工具TimeUtil.java 5.[工具类] 通信服务端simpleServer 6.[工具类] 使用Java程序来实现HTTP文件的队列下载 .java 7....

    java常用的工具类整理28个

    在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据操作、文件处理、数学计算等。它们通常不包含实例变量,只提供静态方法服务,帮助开发者提高代码的复用性和...

    Java日期工具类,Java时间工具类,Java时间格式化

    本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...

    java各种工具类-非常齐全

    日期工具类可以帮助我们进行日期时间的格式化、比较、计算等操作。例如,`LocalDate`、`LocalTime`和`LocalDateTime`类提供了强大的API来处理日期和时间。 2. **字符串工具类**: 字符串是编程中最常见的数据类型...

    Java 日期比较工具类

    Java 日期比较工具类 各种日期操作及计算( 获取两个日期 间隔天数 间隔月数 格式化日期 )

    JAVA对象以及数据的工具类

    在Java编程语言中,工具类(Utils)是包含各种实用方法的类,这些方法通常用于执行常见的任务,如类型转换、字符串操作、集合处理等。它们使得代码更加简洁且易于维护,因为它们提供了通用功能的封装,避免了重复...

    java开发常用工具类

    在Java开发中,工具类是程序员经常会用到的代码库,它们提供了许多便捷的方法,以简化常见的编程任务。本文将详细解析"java开发常用工具类"中的关键知识点,包括日历、时间处理、Excel导出、网络请求、流操作、数据...

    28个java常用的工具类

    26. **DateTimeUtil类**:日期时间工具类,可能包含日期时间的转换、格式化等方法。 27. **TypeConverter类**:数据类型转换工具类,方便不同类型的相互转换。 28. **StringUtils类**:字符串操作的扩展工具类,...

    时间工具类

    时间类型方面很好用的工具类,包括时间类型的转化与计算等

    java日期,时间工具类

    各种日期格式,时间戳,时间计算的相互转换。直接引入工程中,可使用

    java常用开发工具类大全

    - `java.util`: 这个包中包含了大量工具类,如`ArrayList`, `HashMap`, `LinkedList`等集合框架类,以及`Date`, `Calendar`时间处理类,`Random`随机数生成器等。 - `java.text`: 提供了`SimpleDateFormat`进行...

    java操作日期时间工具类

    在Java编程语言中,处理日期和...总之,一个良好的日期时间工具类应该简化日期时间的常见操作,提高代码的可读性和可维护性。在Java 8及更高版本中,可以考虑利用`java.time`包提供的新特性来进一步优化工具类的设计。

    通过封装的工具类,来计算XIRR内部收益率

    在给定的压缩包文件中,我们可以看到一个名为"util"的工具类,这是用来计算XIRR的核心组件。这个工具类很可能包含了计算XIRR所需的关键算法和方法。下面,我们将深入探讨XIRR的计算原理和如何利用编程实现。 1. **...

Global site tag (gtag.js) - Google Analytics