public final class DateExtensionUtil extends Object
DateUtil 的区别:
DateUtil是纯操作Date API的工具类,而DateExtensionUtil类用于个性化输出结果,针对业务个性化显示.
字段 说明 获得两个日期间隔
| Modifier and Type | Method and Description |
|---|---|
static String |
formatDuration(Date beginDate)
将开始时间
beginDate 到当前时间 now(),两日期之间的绝对值间隔,格式化成直观的表示方式. |
static String |
formatDuration(Date beginDate,
Date endDate)
将
beginDate和 endDate 两日期之间的绝对值间隔,格式化成直观的表示方式. |
static String |
formatDuration(long spaceMilliseconds)
将间隔毫秒数
spaceMilliseconds,格式化成直观的表示方式. |
static Pair<Date,Date> |
getDayStartAndEndPair(Date date)
获得 指定日的开始时间
00:00:00.000 及指定日的结束时间 23:59:59.999. |
static int |
getIntervalDay(Date date1,
Date date2)
计算两个时间相差的的天数(绝对值).
|
static int |
getIntervalHour(Date date1,
Date date2)
两个时间相差的的小时数(绝对值).
|
static int |
getIntervalMinute(Date date1,
Date date2)
两个时间相差的分钟(绝对值).
|
static int |
getIntervalSecond(Date date1,
Date date2)
两个时间相差的秒数(绝对值).
|
static long |
getIntervalTime(Date date1,
Date date2)
两个时间相差的毫秒数 (绝对值).
|
static int |
getIntervalWeek(Date date1,
Date date2)
获得相差的星期数(绝对值).
|
static Pair<Date,Date> |
getMonthStartAndEndPair()
获得 当前月的开始时间
00:00:00.000 及当前月结束时间 23:59:59.999. |
static Pair<Date,Date> |
getMonthStartAndEndPair(Date date)
获得 指定月的开始时间
00:00:00.000 及指定月的结束时间 23:59:59.999. |
static Pair<Date,Date> |
getTodayStartAndEndPair()
获得 今天的开始时间
00:00:00.000 及今天的结束时间 23:59:59.999. |
static Pair<Date,Date> |
getYearStartAndEndPair()
获得 当前年的开始时间
00:00:00.000 及当前年的结束时间 23:59:59.999. |
static Pair<Date,Date> |
getYearStartAndEndPair(Date date)
获得 指定年的开始时间
00:00:00.000 及指定年的结束时间 23:59:59.999. |
static Pair<Date,Date> |
getYesterdayStartAndEndPair()
获得 昨天的开始时间
00:00:00.000 及昨天的结束时间 23:59:59.999. |
public static Pair<Date,Date> getTodayStartAndEndPair()
00:00:00.000 及今天的结束时间 23:59:59.999.
一般用于统计当天数据,between ... and ...
比如今天的是 2012-10-16 22:18:34
返回: 2012-10-16 00:00:00.000, 2012-10-16 23:59:59.999
00:00:00.000 23:59:59.999 public static Pair<Date,Date> getYesterdayStartAndEndPair()
00:00:00.000 及昨天的结束时间 23:59:59.999.
一般用于统计昨天数据,between ... and ...
比如今天的是 2012-10-16 22:18:34
返回: 2012-10-15 00:00:00.000, 2012-10-15 23:59:59.999
00:00:00.000 23:59:59.999 public static Pair<Date,Date> getDayStartAndEndPair(Date date)
00:00:00.000 及指定日的结束时间 23:59:59.999.
一般用于统计指定日期数据,between ... and ...
比如传入的是 2012-10-16 22:18:34
返回: 2012-10-16 00:00:00.000, 2012-10-16 23:59:59.999
date - the datedate 是null,抛出 NullPointerException00:00:00.000 23:59:59.999 public static Pair<Date,Date> getMonthStartAndEndPair()
00:00:00.000 及当前月结束时间 23:59:59.999.
一般用于统计当前月的数据,between ... and ...
比如传入的是 2012-10-16 22:18:34
返回: 2012-10-01 00:00:00.000, 2012-10-31 23:59:59.999
00:00:00.000 23:59:59.999 public static Pair<Date,Date> getMonthStartAndEndPair(Date date)
00:00:00.000 及指定月的结束时间 23:59:59.999.
一般用于统计指定月数据,between ... and ...
比如传入的是 2012-10-16 22:18:34
返回: 2012-10-01 00:00:00.000, 2012-10-31 23:59:59.999
date - the datedate 是null,抛出 NullPointerException00:00:00.000 23:59:59.999 public static Pair<Date,Date> getYearStartAndEndPair()
00:00:00.000 及当前年的结束时间 23:59:59.999.
一般用于统计当前年数据,between ... and ...
比如传入的是 2012-10-16 22:18:34
返回: 2012-01-01 00:00:00.000, 2012-12-31 23:59:59.999
00:00:00.000 23:59:59.999 public static Pair<Date,Date> getYearStartAndEndPair(Date date)
00:00:00.000 及指定年的结束时间 23:59:59.999.
一般用于统计指定年数据,between ... and ...
比如传入的是 2012-10-16 22:18:34
返回: 2012-01-01 00:00:00.000, 2012-12-31 23:59:59.999
date - the datedate 是null,抛出 NullPointerException00:00:00.000 23:59:59.999 public static String formatDuration(Date beginDate)
beginDate 到当前时间 now(),两日期之间的绝对值间隔,格式化成直观的表示方式.
- 常用于日志输出一段代码执行时长
- 计算的是开始时间
beginDate到当前时间now()绝对值间隔时间,也就是说不care 时间先后顺序- 间隔时间转成 天,小时,分钟,秒,毫秒 中文文字,月和较大的格式不使用
Date beginDate = now(); // do some logic // balabala logic LOGGER.info("use time: [{}]", DateExtensionUtil.getIntervalForView(beginDate));
如果当前时间是 2016-07-09 13:03:53.259
Date date = toDate("2016-07-03 00:00:00", COMMON_DATE_AND_TIME); LOGGER.debug(getIntervalForView(date));返回:6天13小时3分钟53秒259毫秒
DurationFormatUtils
formatDurationWords 的区别:
DurationFormatUtils formatDurationWords显示的是英文,该方法显示的是中文DurationFormatUtils formatDurationWords最小单位是秒,该方法最小单位是毫秒
beginDate - 开始日期beginDate 是null,抛出 NullPointerExceptionformatDuration(Date, Date),
DurationFormatUtils.formatDurationWords(long, boolean, boolean),
how-to-format-a-duration-
in-java-e-g-format-hmmsspublic static String formatDuration(Date beginDate, Date endDate)
beginDate和 endDate 两日期之间的绝对值间隔,格式化成直观的表示方式.
- 常用于日志输出一段代码执行时长
- 计算的是开始时间
beginDate到结束时间endDate绝对值间隔时间,也就是说不care 时间先后顺序- 间隔时间转成 天,小时,分钟,秒,毫秒 中文文字,月和较大的格式不使用
Date beginDate = now(); // do some logic // balabala logic LOGGER.info("use time: [{}]", DateExtensionUtil.getIntervalForView(beginDate, now()));
DateExtensionUtil.getIntervalForView(2011-05-19 8:30:40,2011-05-19 11:30:24) = 2小时59分44秒 DateExtensionUtil.getIntervalForView(2011-05-19 11:31:25.456,2011-05-19 11:30:24.895) = 1分钟1秒
DurationFormatUtils
formatDurationWords 的区别:
DurationFormatUtils formatDurationWords显示的是英文,该方法显示的是中文DurationFormatUtils formatDurationWords最小单位是秒,该方法最小单位是毫秒
beginDate - 开始日期endDate - 结束日期beginDate 是null,抛出 NullPointerExceptionendDate 是null,抛出 NullPointerExceptionformatDuration(long),
getIntervalTime(Date, Date),
DurationFormatUtils.formatDurationWords(long, boolean, boolean),
how-to-format-a-duration-
in-java-e-g-format-hmmsspublic static String formatDuration(long spaceMilliseconds)
spaceMilliseconds,格式化成直观的表示方式.
- 常用于日志输出一段代码执行时长
- 间隔时间转成 天,小时,分钟,秒,毫秒 中文文字,月和较大的格式不使用
DateExtensionUtil.getIntervalForView(13516) = 13秒516毫秒 DateExtensionUtil.getIntervalForView(0) = 0
DurationFormatUtils
formatDurationWords 的区别:
DurationFormatUtils formatDurationWords显示的是英文,该方法显示的是中文DurationFormatUtils formatDurationWords最小单位是秒,该方法最小单位是毫秒
spaceMilliseconds - 总共相差的毫秒数spaceMilliseconds < 0,抛出 IllegalArgumentExceptiongetIntervalDay(long),
getIntervalHour(long),
getIntervalMinute(long),
getIntervalSecond(long),
DurationFormatUtils.formatDurationWords(long, boolean, boolean),
how-to-format-a-duration-
in-java-e-g-format-hmmsspublic static int getIntervalWeek(Date date1, Date date2)
- 值=两个时间相差毫秒的绝对值/
TimeInterval.MILLISECOND_PER_WEEK- 当两者时间差不足1星期,返回0
DateExtensionUtil.getIntervalWeek(
toDate("2014-01-01 00:00:00",COMMON_DATE_AND_TIME),
toDate("2014-02-01 00:00:00",COMMON_DATE_AND_TIME)) = 4
DateExtensionUtil.getIntervalWeek(
toDate("2016-08-01",COMMON_DATE),
toDate("2016-08-07",COMMON_DATE)) = 0
DateExtensionUtil.getIntervalWeek(
toDate("2016-08-01",COMMON_DATE),
toDate("2016-08-08",COMMON_DATE)) = 1
DateExtensionUtil.getIntervalWeek(
toDate("2016-08-21",COMMON_DATE),
toDate("2016-08-21",COMMON_DATE)) = 0
date1 - 第一个时间date2 - 第二个时间date1 是null,抛出 NullPointerExceptiondate2 是null,抛出 NullPointerExceptiongetIntervalWeek(long)public static int getIntervalDay(Date date1, Date date2)
- 值=两个时间相差毫秒的绝对值/
TimeInterval.MILLISECOND_PER_DAY- 当两者时间差不足1天,返回0
DateExtensionUtil.getIntervalDay(
toDate("2008-08-24",COMMON_DATE),
toDate("2008-08-27",COMMON_DATE)) = 3
DateExtensionUtil.getIntervalDay(
toDate("2016-08-21 12:00:00",COMMON_DATE_AND_TIME),
toDate("2016-08-22 11:00:00",COMMON_DATE_AND_TIME)) = 0
DateExtensionUtil.getIntervalDay(
toDate("2016-08-21",COMMON_DATE),
toDate("2016-08-22",COMMON_DATE)) = 1
DateExtensionUtil.getIntervalDay(
toDate("2016-02-28",COMMON_DATE),
toDate("2016-03-02",COMMON_DATE)) = 3
DateExtensionUtil.getIntervalDay(
toDate("2016-08-31",COMMON_DATE),
toDate("2016-09-02",COMMON_DATE)) = 2
date1 - 第一个时间date2 - 第二个时间date1 是null,抛出 NullPointerExceptiondate2 是null,抛出 NullPointerExceptiongetIntervalTime(Date, Date),
getIntervalDay(long)public static int getIntervalHour(Date date1, Date date2)
- 值=两个时间相差毫秒的绝对值/
TimeInterval.MILLISECOND_PER_HOUR- 当两者时间差不足1小时,返回0
DateExtensionUtil.getIntervalHour(
toDate("2014-01-01 00:00:00",COMMON_DATE_AND_TIME),
toDate("2014-01-01 01:00:00",COMMON_DATE_AND_TIME)) = 1
DateExtensionUtil.getIntervalHour(
toDate("2014-01-01 00:00:00",COMMON_DATE_AND_TIME),
toDate("2014-01-01 00:59:00",COMMON_DATE_AND_TIME)) = 0
DateExtensionUtil.getIntervalHour(
toDate("2014-01-01 00:59:00",COMMON_DATE_AND_TIME),
toDate("2014-01-01 00:00:00",COMMON_DATE_AND_TIME)) = 0
DateExtensionUtil.getIntervalHour(
toDate("2016-08-21 23:00:00",COMMON_DATE_AND_TIME),
toDate("2016-08-22 01:00:00",COMMON_DATE_AND_TIME)) = 2
date1 - 第一个时间date2 - 第二个时间date1 是null,抛出 NullPointerExceptiondate2 是null,抛出 NullPointerExceptiongetIntervalTime(Date, Date),
getIntervalHour(long)public static int getIntervalMinute(Date date1, Date date2)
- 值=两个时间相差毫秒的绝对值/
TimeInterval.MILLISECOND_PER_MINUTE- 当两者时间差不足1分钟,返回0
DateExtensionUtil.getIntervalMinute(
toDate("2008-08-24 00:00:00",COMMON_DATE_AND_TIME),
toDate("2008-08-24 01:00:00",COMMON_DATE_AND_TIME)) = 60
DateExtensionUtil.getIntervalMinute(
toDate("2008-08-24 00:00:00",COMMON_DATE_AND_TIME),
toDate("2008-08-24 00:00:00",COMMON_DATE_AND_TIME)) = 0
DateExtensionUtil.getIntervalMinute(
toDate("2008-08-24 00:00:00",COMMON_DATE_AND_TIME),
toDate("2008-08-24 00:00:50",COMMON_DATE_AND_TIME)) = 0
DateExtensionUtil.getIntervalMinute(
toDate("2008-08-24 00:00:00",COMMON_DATE_AND_TIME),
toDate("2008-08-23 00:00:00",COMMON_DATE_AND_TIME)) = SECONDS_PER_DAY / 60
date1 - 第一个时间date2 - 第二个时间date1 是null,抛出 NullPointerExceptiondate2 是null,抛出 NullPointerExceptiongetIntervalTime(Date, Date),
getIntervalMinute(long)public static int getIntervalSecond(Date date1, Date date2)
- 值=两个时间相差毫秒的绝对值/
TimeInterval.MILLISECOND_PER_SECONDS- 不足1秒返回0
DateExtensionUtil.getIntervalSecond(
toDate("2016-08-22 00:00:00",COMMON_DATE_AND_TIME),
toDate("2016-08-22 00:00:08",COMMON_DATE_AND_TIME)) = 8
DateExtensionUtil.getIntervalSecond(
toDate("2016-08-21 23:59:20",COMMON_DATE_AND_TIME),
toDate("2016-08-22 00:00:20",COMMON_DATE_AND_TIME)) = 60
date1 - 第一个时间date2 - 第二个时间date1 是null,抛出 NullPointerExceptiondate2 是null,抛出 NullPointerExceptiongetIntervalTime(Date, Date),
getIntervalSecond(long)public static long getIntervalTime(Date date1, Date date2)
DateExtensionUtil.getIntervalTime(
toDate("2016-07-16 15:21:00",COMMON_DATE_AND_TIME),
toDate("2016-07-16 15:21:01",COMMON_DATE_AND_TIME)) = 1000
DateExtensionUtil.getIntervalTime(
toDate("2016-07-16 15:21:00",COMMON_DATE_AND_TIME),
toDate("2016-07-16 15:22:00",COMMON_DATE_AND_TIME)) = 60000
date1 - 第一个时间date2 - 第二个时间date1 是null,抛出 NullPointerExceptiondate2 是null,抛出 NullPointerExceptionDateUtil.getTime(Date),
Math.abs(long)Copyright © 2008-2019 by feilong