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,抛出 NullPointerException
00: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,抛出 NullPointerException
00: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,抛出 NullPointerException
00: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,抛出 NullPointerException
formatDuration(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,抛出 NullPointerException
endDate
是null,抛出 NullPointerException
formatDuration(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
,抛出 IllegalArgumentException
getIntervalDay(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,抛出 NullPointerException
date2
是null,抛出 NullPointerException
getIntervalWeek(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,抛出 NullPointerException
date2
是null,抛出 NullPointerException
getIntervalTime(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,抛出 NullPointerException
date2
是null,抛出 NullPointerException
getIntervalTime(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,抛出 NullPointerException
date2
是null,抛出 NullPointerException
getIntervalTime(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,抛出 NullPointerException
date2
是null,抛出 NullPointerException
getIntervalTime(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,抛出 NullPointerException
date2
是null,抛出 NullPointerException
DateUtil.getTime(Date)
,
Math.abs(long)
Copyright © 2008-2019 by feilong