6hutool实战:DateUtil(时间工具类)-时间偏移量获取

6hutool实战:DateUtil(时间工具类)-时间偏移量获取hutool 实战 包含但不限于获取年 季度 月 周 日 时 分 秒 毫秒的开始时间和结束时间 关键字 javajavaJAVA 工具类工具类工具类 DateUtilDate

技术活,该赏 关注+一键三连(点赞,评论,收藏)再看,养成好习惯 

hutool实战(带你掌握里面的各种工具)目录

万字博文教你搞懂java源码的日期和时间相关用法


用途:时间偏移量获取

使用场景

包含但不限于获取年,季度,月,周,日,时,分,秒,毫秒的开始时间和结束时间

项目引用

此博文的依据:hutool-5.6.5版本源码

 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-core</artifactId> <version>5.6.5</version> </dependency> 

方法摘要

方法 描述
cn.hutool.core.date.DateUtil.truncate(java.util.Date, cn.hutool.core.date.DateField)
修改日期为某个时间字段起始时间
cn.hutool.core.date.DateUtil.round(java.util.Date, cn.hutool.core.date.DateField)
修改日期为某个时间字段四舍五入时间
cn.hutool.core.date.DateUtil.ceiling(java.util.Date, cn.hutool.core.date.DateField)
修改日期为某个时间字段结束时间
cn.hutool.core.date.DateUtil.beginOfSecond(java.util.Date)
获取秒级别的开始时间,即忽略毫秒部分
cn.hutool.core.date.DateUtil.endOfSecond(java.util.Date)
获取秒级别的结束时间,即毫秒设置为999
cn.hutool.core.date.DateUtil.beginOfHour(java.util.Date)
获取某小时的开始时间
cn.hutool.core.date.DateUtil.endOfHour(java.util.Date)
获取某小时的结束时间
cn.hutool.core.date.DateUtil.beginOfMinute(java.util.Date)
获取某分钟的开始时间
cn.hutool.core.date.DateUtil.endOfMinute(java.util.Date)
获取某分钟的结束时间
cn.hutool.core.date.DateUtil.beginOfDay(java.util.Date)
获取某天的开始时间
cn.hutool.core.date.DateUtil.endOfDay(java.util.Date)
获取某天的结束时间
cn.hutool.core.date.DateUtil.beginOfWeek(java.util.Date)
获取某周的开始时间,周一定为一周的开始时间
cn.hutool.core.date.DateUtil.beginOfWeek(java.util.Date, boolean)
获取某周的开始时间
cn.hutool.core.date.DateUtil.endOfWeek(java.util.Date)
获取某周的结束时间,周日定为一周的结束
cn.hutool.core.date.DateUtil.endOfWeek(java.util.Date, boolean)
获取某周的结束时间
cn.hutool.core.date.DateUtil.beginOfMonth(java.util.Date)
获取某月的开始时间
cn.hutool.core.date.DateUtil.endOfMonth(java.util.Date)
获取某月的结束时间
cn.hutool.core.date.DateUtil.beginOfQuarter(java.util.Date)
获取某季度的开始时间
cn.hutool.core.date.DateUtil.endOfQuarter(java.util.Date)
获取某季度的结束时间
cn.hutool.core.date.DateUtil.beginOfYear(java.util.Date)
获取某年的开始时间
cn.hutool.core.date.DateUtil.endOfYear(java.util.Date)
获取某年的结束时间
cn.hutool.core.date.DateUtil.yesterday()
昨天
cn.hutool.core.date.DateUtil.tomorrow()
明天
cn.hutool.core.date.DateUtil.lastWeek()
上周
cn.hutool.core.date.DateUtil.nextWeek()
下周
cn.hutool.core.date.DateUtil.lastMonth()
上个月
cn.hutool.core.date.DateUtil.nextMonth()
下个月
cn.hutool.core.date.DateUtil.offsetMillisecond(java.util.Date, int)
偏移毫秒数
cn.hutool.core.date.DateUtil.offsetSecond(java.util.Date, int)
偏移秒数
cn.hutool.core.date.DateUtil.offsetMinute(java.util.Date, int)
偏移分钟
cn.hutool.core.date.DateUtil.offsetHour(java.util.Date, int)
偏移小时
cn.hutool.core.date.DateUtil.offsetDay(java.util.Date, int)
偏移天
cn.hutool.core.date.DateUtil.offsetWeek(java.util.Date, int)
偏移周
cn.hutool.core.date.DateUtil.offsetMonth(java.util.Date, int)
偏移月
cn.hutool.core.date.DateUtil.offset(java.util.Date, cn.hutool.core.date.DateField, int)
获取指定日期偏移指定时间后的时间,生成的偏移日期不影响原日期

方法明细

方法名称:cn.hutool.core.date.DateUtil.truncate(java.util.Date, cn.hutool.core.date.DateField)

方法描述

修改日期为某个时间字段起始时间

支持版本及以上

4.5.7

参数描述:

参数名 描述
Date date
date {@link Date}
DateField dateField
dateField 时间字段

返回值:

{@link DateTime}

参考案例:

 String dateStr2 = "2020-02-29 12:59:34"; Date date2 = DateUtil.parse(dateStr2); final DateTime dateTime = DateUtil.truncate(date2, DateField.MINUTE); Assert.assertEquals("2020-02-29 12:59:00", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.round(java.util.Date, cn.hutool.core.date.DateField)

方法描述

修改日期为某个时间字段四舍五入时间

支持版本及以上

4.5.7

参数描述:

参数名 描述
Date date
date {@link Date}
DateField dateField
dateField 时间字段

返回值:

{@link DateTime}

参考案例:

 String dateStr2 = "2020-02-29 12:59:34"; Date date2 = DateUtil.parse(dateStr2); DateTime dateTime = DateUtil.round(date2, DateField.MINUTE); Assert.assertEquals("2020-02-29 12:59:59", dateTime.toString()); dateStr2 = "2020-02-29 12:05:29"; date2 = DateUtil.parse(dateStr2); dateTime = DateUtil.round(date2, DateField.MINUTE); Assert.assertEquals("2020-02-29 12:05:00", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.ceiling(java.util.Date, cn.hutool.core.date.DateField)

方法描述

修改日期为某个时间字段结束时间

支持版本及以上

4.5.7

参数描述:

参数名 描述
Date date
date {@link Date}
DateField dateField
dateField 时间字段

返回值:

{@link DateTime}

参考案例:

 String dateStr2 = "2020-02-29 12:59:34"; Date date2 = DateUtil.parse(dateStr2); DateTime dateTime = DateUtil.ceiling(date2, DateField.MINUTE); Assert.assertEquals("2020-02-29 12:59:59", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.beginOfSecond(java.util.Date)

方法描述

获取秒级别的开始时间,即忽略毫秒部分

支持版本及以上

4.6.2

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 String dateStr2 = "2021-05-16 22:50:34.111"; Date date2 = DateUtil.parse(dateStr2); DateTime dateTime = DateUtil.beginOfSecond(date2); Assert.assertEquals("2021-05-16 22:50:34", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.endOfSecond(java.util.Date)

方法描述

获取秒级别的结束时间,即毫秒设置为999

支持版本及以上

4.6.2

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 String dateStr2 = "2021-05-16 22:50:34.111"; DateTime date2 = DateUtil.parse(dateStr2,"yyyy-MM-dd HH:mm:ss.SSS"); int millisecond = DateUtil.millisecond(date2); DateTime dateTime = DateUtil.endOfSecond(date2); Assert.assertEquals(999, DateUtil.millisecond(dateTime)); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.beginOfHour(java.util.Date)

方法描述

获取某小时的开始时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 String dateStr2 = "2021-05-16 22:50:34.111"; DateTime date2 = DateUtil.parse(dateStr2,"yyyy-MM-dd HH:mm:ss.SSS"); DateTime dateTime = DateUtil.beginOfHour(date2); System.out.println(dateTime); Assert.assertEquals("2021-05-16 22:00:00", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.endOfHour(java.util.Date)

方法描述

获取某小时的结束时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 String dateStr2 = "2021-05-16 22:50:34.111"; DateTime date2 = DateUtil.parse(dateStr2,"yyyy-MM-dd HH:mm:ss.SSS"); DateTime dateTime = DateUtil.endOfHour(date2); Assert.assertEquals("2021-05-16 22:59:59", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.beginOfMinute(java.util.Date)

方法描述

获取某分钟的开始时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 String dateStr2 = "2021-05-16 22:50:34.111"; DateTime date2 = DateUtil.parse(dateStr2,"yyyy-MM-dd HH:mm:ss.SSS"); DateTime dateTime = DateUtil.beginOfMinute(date2); Assert.assertEquals("2021-05-16 22:50:00", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.endOfMinute(java.util.Date)

方法描述

获取某分钟的结束时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 String dateStr2 = "2021-05-16 22:50:34.111"; DateTime date2 = DateUtil.parse(dateStr2,"yyyy-MM-dd HH:mm:ss.SSS"); DateTime dateTime = DateUtil.endOfMinute(date2); Assert.assertEquals("2021-05-16 22:50:59", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.beginOfDay(java.util.Date)

方法描述

获取某天的开始时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 String dateStr = "2017-03-01 00:33:23"; Date date = DateUtil.parse(dateStr); // 一天的开始 Date beginOfDay = DateUtil.beginOfDay(date); Assert.assertEquals("2017-03-01 00:00:00", beginOfDay.toString()); // 一天的结束 Date endOfDay = DateUtil.endOfDay(date); Assert.assertEquals("2017-03-01 23:59:59", endOfDay.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.endOfDay(java.util.Date)

方法描述

获取某天的结束时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 String dateStr = "2017-03-01 00:33:23"; Date date = DateUtil.parse(dateStr); // 一天的开始 Date beginOfDay = DateUtil.beginOfDay(date); Assert.assertEquals("2017-03-01 00:00:00", beginOfDay.toString()); // 一天的结束 Date endOfDay = DateUtil.endOfDay(date); Assert.assertEquals("2017-03-01 23:59:59", endOfDay.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.beginOfWeek(java.util.Date)

方法描述

获取某周的开始时间,周一定为一周的开始时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 String dateStr = "2017-03-01 22:33:23"; DateTime date = DateUtil.parse(dateStr); Objects.requireNonNull(date).setFirstDayOfWeek(Week.MONDAY); // 一周的开始 Date beginOfWeek = DateUtil.beginOfWeek(date); Assert.assertEquals("2017-02-27 00:00:00", beginOfWeek.toString()); // 一周的结束 Date endOfWeek = DateUtil.endOfWeek(date); Assert.assertEquals("2017-03-05 23:59:59", endOfWeek.toString()); Calendar calendar = DateUtil.calendar(date); // 一周的开始 Calendar begin = DateUtil.beginOfWeek(calendar); Assert.assertEquals("2017-02-27 00:00:00", DateUtil.date(begin).toString()); // 一周的结束 Calendar end = DateUtil.endOfWeek(calendar); Assert.assertEquals("2017-03-05 23:59:59", DateUtil.date(end).toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.beginOfWeek(java.util.Date, boolean)

方法描述

获取某周的开始时间

支持版本及以上

5.4.0

参数描述:

参数名 描述
Date date
date 日期
boolean isMondayAsFirstDay
isMondayAsFirstDay 是否周一做为一周的第一天(false表示周日做为第一天)

返回值:

{@link DateTime}

参考案例:

 String beginStr = "2020-03-11"; DateTime date = DateUtil.parseDate(beginStr); Calendar calendar = date.toCalendar(); final Calendar begin = DateUtil.beginOfWeek(calendar, false); Assert.assertEquals("2020-03-08 00:00:00", DateUtil.date(begin).toString()); Calendar calendar2 = date.toCalendar(); final Calendar end = DateUtil.endOfWeek(calendar2, false); Assert.assertEquals("2020-03-14 23:59:59", DateUtil.date(end).toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.endOfWeek(java.util.Date)

方法描述

获取某周的结束时间,周日定为一周的结束

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

String dateStr = "2017-03-01 22:33:23"; DateTime date = DateUtil.parse(dateStr); Objects.requireNonNull(date).setFirstDayOfWeek(Week.MONDAY); // 一周的开始 Date beginOfWeek = DateUtil.beginOfWeek(date); Assert.assertEquals("2017-02-27 00:00:00", beginOfWeek.toString()); // 一周的结束 Date endOfWeek = DateUtil.endOfWeek(date); Assert.assertEquals("2017-03-05 23:59:59", endOfWeek.toString()); Calendar calendar = DateUtil.calendar(date); // 一周的开始 Calendar begin = DateUtil.beginOfWeek(calendar); Assert.assertEquals("2017-02-27 00:00:00", DateUtil.date(begin).toString()); // 一周的结束 Calendar end = DateUtil.endOfWeek(calendar); Assert.assertEquals("2017-03-05 23:59:59", DateUtil.date(end).toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.endOfWeek(java.util.Date, boolean)

方法描述

获取某周的结束时间

支持版本及以上

5.4.0

参数描述:

参数名 描述
Date date
date 日期
boolean isSundayAsLastDay
isSundayAsLastDay 是否周日做为一周的最后一天(false表示周六做为最后一天)

返回值:

{@link DateTime}

参考案例:

 String beginStr = "2020-03-11"; DateTime date = DateUtil.parseDate(beginStr); Calendar calendar = date.toCalendar(); final Calendar begin = DateUtil.beginOfWeek(calendar, false); Assert.assertEquals("2020-03-08 00:00:00", DateUtil.date(begin).toString()); Calendar calendar2 = date.toCalendar(); final Calendar end = DateUtil.endOfWeek(calendar2, false); Assert.assertEquals("2020-03-14 23:59:59", DateUtil.date(end).toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.beginOfMonth(java.util.Date)

方法描述

获取某月的开始时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 String dateStr2 = "2021-05-16 22:50:34.111"; DateTime date2 = DateUtil.parse(dateStr2,"yyyy-MM-dd HH:mm:ss.SSS"); DateTime dateTime = DateUtil.beginOfMonth(date2); Assert.assertEquals("2021-05-01 00:00:00", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.endOfMonth(java.util.Date)

方法描述

获取某月的结束时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 String dateStr2 = "2021-05-16 22:50:34.111"; DateTime date2 = DateUtil.parse(dateStr2,"yyyy-MM-dd HH:mm:ss.SSS"); DateTime dateTime = DateUtil.endOfMonth(date2); Assert.assertEquals("2021-05-31 23:59:59", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.beginOfQuarter(java.util.Date)

方法描述

获取某季度的开始时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 DateTime dateTime = new DateTime("2021-05-16 23:34:23", DatePattern.NORM_DATETIME_FORMAT); // 精确到毫秒 DateTime beginTime = new DateTime("2021-04-01 00:00:00.000", DatePattern.NORM_DATETIME_MS_FORMAT); dateTime = DateUtil.beginOfQuarter(dateTime); Assert.assertEquals(beginTime, dateTime); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.endOfQuarter(java.util.Date)

方法描述

获取某季度的结束时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 Date date = DateUtil.endOfQuarter( DateUtil.parse("2020-05-31 00:00:00")); Assert.assertEquals("2020-06-30 23:59:59", DateUtil.format(date,"yyyy-MM-dd HH:mm:ss")); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.beginOfYear(java.util.Date)

方法描述

获取某年的开始时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 DateTime date = DateUtil.date(); date.setField(DateField.YEAR, 2019); DateTime endOfYear = DateUtil.beginOfYear(date); Assert.assertEquals("2019-01-01 00:00:00", endOfYear.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.endOfYear(java.util.Date)

方法描述

获取某年的结束时间

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期

返回值:

{@link DateTime}

参考案例:

 DateTime date = DateUtil.date(); date.setField(DateField.YEAR, 2019); DateTime endOfYear = DateUtil.endOfYear(date); Assert.assertEquals("2019-12-31 23:59:59", endOfYear.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.yesterday()

方法描述

昨天

支持版本及以上

参数描述:

参数名 描述

返回值:

昨天

参考案例:

 //昨天 DateTime dateTime = DateUtil.yesterday(); System.out.println(dateTime); Assert.assertNotNull(dateTime); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.tomorrow()

方法描述

明天

支持版本及以上

3.0.1

参数描述:

参数名 描述

返回值:

明天

参考案例:

 //明天 DateTime dateTime = DateUtil.tomorrow(); System.out.println(dateTime); Assert.assertNotNull(dateTime); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.lastWeek()

方法描述

上周

支持版本及以上

参数描述:

参数名 描述

返回值:

上周

参考案例:

 //上周 DateTime dateTime = DateUtil.lastWeek(); System.out.println(dateTime); Assert.assertNotNull(dateTime); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.nextWeek()

方法描述

下周

支持版本及以上

3.0.1

参数描述:

参数名 描述

返回值:

下周

参考案例:

 //下周 DateTime dateTime = DateUtil.nextWeek(); System.out.println(dateTime); Assert.assertNotNull(dateTime); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.lastMonth()

方法描述

上个月

支持版本及以上

参数描述:

参数名 描述

返回值:

上个月

参考案例:

 //上个月 DateTime dateTime = DateUtil.lastMonth(); System.out.println(dateTime); Assert.assertNotNull(dateTime); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.nextMonth()

方法描述

下个月

支持版本及以上

3.0.1

参数描述:

参数名 描述

返回值:

下个月

参考案例:

 //下个月 DateTime dateTime = DateUtil.nextMonth(); System.out.println(dateTime); Assert.assertNotNull(dateTime); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.offsetMillisecond(java.util.Date, int)

方法描述

偏移毫秒数

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期
int offset
offset 偏移毫秒数,正数向未来偏移,负数向历史偏移

返回值:

偏移后的日期

参考案例:

 //偏移毫秒数 String dateStr2 = "2021-05-16 22:50:34.111"; DateTime date2 = DateUtil.parse(dateStr2); DateTime dateTime = DateUtil.offsetMillisecond(date2,1); int millisecond = DateUtil.millisecond(dateTime); Assert.assertEquals(112, millisecond); dateTime = DateUtil.offsetMillisecond(date2,-1); millisecond = DateUtil.millisecond(dateTime); Assert.assertEquals(110, millisecond); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.offsetSecond(java.util.Date, int)

方法描述

偏移秒数

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期
int offset
offset 偏移秒数,正数向未来偏移,负数向历史偏移

返回值:

偏移后的日期

参考案例:

 //偏移秒数 String dateStr2 = "2021-05-16 22:50:34.111"; DateTime date2 = DateUtil.parse(dateStr2); DateTime dateTime = DateUtil.offsetSecond(date2,1); int second = DateUtil.second(dateTime); Assert.assertEquals(35, second); dateTime = DateUtil.offsetSecond(date2,-1); second = DateUtil.second(dateTime); Assert.assertEquals(33, second); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.offsetMinute(java.util.Date, int)

方法描述

偏移分钟

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期
int offset
offset 偏移分钟数,正数向未来偏移,负数向历史偏移

返回值:

偏移后的日期

参考案例:

 //偏移分钟 String dateStr2 = "2021-05-16 22:50:34.111"; DateTime date2 = DateUtil.parse(dateStr2); DateTime dateTime = DateUtil.offsetMinute(date2,1); int minute = DateUtil.minute(dateTime); Assert.assertEquals(51, minute); dateTime = DateUtil.offsetMinute(date2,-1); minute = DateUtil.minute(dateTime); Assert.assertEquals(49, minute); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.offsetHour(java.util.Date, int)

方法描述

偏移小时

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期
int offset
offset 偏移小时数,正数向未来偏移,负数向历史偏移

返回值:

偏移后的日期

参考案例:

 //偏移分钟 String dateStr2 = "2021-05-16 22:50:34.111"; DateTime date2 = DateUtil.parse(dateStr2); DateTime dateTime = DateUtil.offsetHour(date2,1); int hour = DateUtil.hour(dateTime,true); Assert.assertEquals(23, hour); dateTime = DateUtil.offsetHour(date2,-1); hour = DateUtil.hour(dateTime,true); Assert.assertEquals(21, hour); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.offsetDay(java.util.Date, int)

方法描述

偏移天

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期
int offset
offset 偏移天数,正数向未来偏移,负数向历史偏移

返回值:

偏移后的日期

参考案例:

 //偏移天 String dateStr2 = "2021-05-16 22:50:34"; DateTime date2 = DateUtil.parse(dateStr2); DateTime dateTime = DateUtil.offsetDay(date2,1); Assert.assertEquals("2021-05-17 22:50:34", dateTime.toString()); dateTime = DateUtil.offsetDay(date2,-1); Assert.assertEquals("2021-05-15 22:50:34", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.offsetWeek(java.util.Date, int)

方法描述

偏移周

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期
int offset
offset 偏移周数,正数向未来偏移,负数向历史偏移

返回值:

偏移后的日期

参考案例:

 //偏移周 String dateStr2 = "2021-05-16 22:50:34"; DateTime date2 = DateUtil.parse(dateStr2); DateTime dateTime = DateUtil.offsetWeek(date2,1); Assert.assertEquals("2021-05-23 22:50:34", dateTime.toString()); dateTime = DateUtil.offsetWeek(date2,-1); Assert.assertEquals("2021-05-09 22:50:34", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.offsetMonth(java.util.Date, int)

方法描述

偏移月

支持版本及以上

参数描述:

参数名 描述
Date date
date 日期
int offset
offset 偏移月数,正数向未来偏移,负数向历史偏移

返回值:

偏移后的日期

参考案例:

 //偏移月 String dateStr2 = "2021-05-16 22:50:34"; DateTime date2 = DateUtil.parse(dateStr2); DateTime dateTime = DateUtil.offsetMonth(date2,1); Assert.assertEquals("2021-06-16 22:50:34", dateTime.toString()); dateTime = DateUtil.offsetMonth(date2,-1); Assert.assertEquals("2021-04-16 22:50:34", dateTime.toString()); 

源码解析:

链接:待补充 

方法明细

方法名称:cn.hutool.core.date.DateUtil.offset(java.util.Date, cn.hutool.core.date.DateField, int)

方法描述

获取指定日期偏移指定时间后的时间,生成的偏移日期不影响原日期

支持版本及以上

参数描述:

参数名 描述
Date date
date 基准日期
DateField dateField
dateField 偏移的粒度大小(小时、天、月等){@link DateField}
int offset
offset 偏移量,正数为向后偏移,负数为向前偏移

返回值:

偏移后的日期

参考案例:

 String dateStr = "2017-03-01 22:33:23"; Date date = DateUtil.parse(dateStr); Date newDate = DateUtil.offset(date, DateField.DAY_OF_MONTH, 2); Assert.assertEquals("2017-03-03 22:33:23", newDate.toString()); 

源码解析:

链接:待补充 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232270.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 日常开发中,String类中常用的方法

    日常开发中,String类中常用的方法1.基本操作方法2.字符串比较3.字符串与其他数据类型之间的转换4.字符与字符串的查找5.字符串的截取与拆分6.字符串的替换与修改

    2022年10月2日
    2
  • 775针cpu性能最好的_英特尔775针cpu性能排行

    775针cpu性能最好的_英特尔775针cpu性能排行排名型号评分1IntelCorei7995X@3.60GHz10,8622IntelXeonW3690@3.47GHz10,8283IntelCorei7990X@3.47GHz10,6544IntelCorei7980X@3.33GHz10,6075IntelXeonX5690@3.47GHz10,3146IntelCorei7980@3….

    2022年9月20日
    2
  • 送给大家一套完整的web前端开发学习路线

    本文来源:千锋web前端开发近几年IT业可谓是发展火热,而且新生了很多的职业。在这众多的新生职业中备受瞩目的当属web前端工程师了,web前端在IT行业真正受到重视的时间不超过五年,但是web前端的发展前景却是非常的可观,好前景高薪资吸引了众多的人投入到前端开发的学习当中去,想学好web前端,这份web前端开发学习路线分享给你。  好的学习方法和掌握好正确的学习路线可以让我们的…

    2022年4月11日
    71
  • spring解析自定义注解_事务的注解@Transactional的属性

    spring解析自定义注解_事务的注解@Transactional的属性前言众所周知,spring从2.5版本以后开始支持使用注解代替繁琐的xml配置,到了springboot更是全面拥抱了注解式配置。平时在使用的时候,点开一些常见的等注解,会发现往往在一

    2022年8月16日
    10
  • pycharm的调试功能_pycharm运行调试配置

    pycharm的调试功能_pycharm运行调试配置Debug调试,是对于学习编程人员来说是一项重要的技能。只有当你学会debug了以后,才可以正确的知道程序的走向流程是如何的,DEBUG是排除程序故障的意思。debug则是通过工具来对代码进行调试,进而一步步找出程序中出现bug的位置,也就是程序中具体错误代码的位置。Pycharm中的debug模式首先,还是用示例说话,我们先写一段简短的代码,来帮助我们完成今天要讲的内容。初学者可能没见过for循环中的下划线‘_’,在Python中是占位符的意思,因…

    2022年8月25日
    11
  • Git合并分支超详细解释

    Git合并分支超详细解释摘自朱双印老师博客 http www zsythink net archives 3470 在执行 合并 操作时 我们可以根据具体情况 选择不同的合并模式去合并 不同的合并模式对应了不同的命令参数 而且在合并的过程中 还可能遇到 冲突 为了说明白原理 我们先来看一些示意图此示意图并没有涉及到任何合并操作 而是描述了合并分支之前 两个分支的创建过程 上图中的第 1 步表示已经存在的一条分支 这条分支的名字是 base 第 2 步表示基于 base 分支 创建了 new 分支 此时 base 分支的指针和 new 分支的

    2025年7月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号