0
点赞
收藏
分享

微信扫一扫

3hutool实战:DateUtil-获取日期的各种内容


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

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.year(java.util.Date)

获得年的部分

cn.hutool.core.date.DateUtil.quarter(java.util.Date)

获得指定日期所属季度,从1开始计数

cn.hutool.core.date.DateUtil.quarterEnum(java.util.Date)

获得指定日期所属季度

cn.hutool.core.date.DateUtil.month(java.util.Date)

获得月份,从0开始计数

cn.hutool.core.date.DateUtil.monthEnum(java.util.Date)

获得月份

cn.hutool.core.date.DateUtil.weekOfYear(java.util.Date)

获得指定日期是所在年份的第几周<br> 此方法返回值与一周的第一天有关,比如:<br> 2016年1月3日为周日,如果一周的第一天为周日,那这天是第二周(返回2)<br> 如果一周的第一天为周一,那这天是第一周(返回1)<br> 跨年的那个星期得到的结果总是1

cn.hutool.core.date.DateUtil.weekOfMonth(java.util.Date)

获得指定日期是所在月份的第几周<br>

cn.hutool.core.date.DateUtil.dayOfMonth(java.util.Date)

获得指定日期是这个日期所在月份的第几天<br>

cn.hutool.core.date.DateUtil.dayOfYear(java.util.Date)

获得指定日期是这个日期所在年的第几天

cn.hutool.core.date.DateUtil.dayOfWeek(java.util.Date)

获得指定日期是星期几,1表示周日,2表示周一

cn.hutool.core.date.DateUtil.dayOfWeekEnum(java.util.Date)

获得指定日期是星期几

cn.hutool.core.date.DateUtil.hour(java.util.Date, boolean)

获得指定日期的小时数部分<br>

cn.hutool.core.date.DateUtil.minute(java.util.Date)

获得指定日期的分钟数部分<br> 例如:10:04:15.250 =》 4

cn.hutool.core.date.DateUtil.second(java.util.Date)

获得指定日期的秒数部分<br>

cn.hutool.core.date.DateUtil.millisecond(java.util.Date)

获得指定日期的毫秒数部分<br>

cn.hutool.core.date.DateUtil.isAM(java.util.Date)

是否为上午

cn.hutool.core.date.DateUtil.isPM(java.util.Date)

是否为下午

cn.hutool.core.date.DateUtil.thisYear()

今年

cn.hutool.core.date.DateUtil.thisMonth()

当前月份

cn.hutool.core.date.DateUtil.thisMonthEnum()

//当前月份枚举

cn.hutool.core.date.DateUtil.thisWeekOfYear()

当前日期所在年份的第几周

cn.hutool.core.date.DateUtil.thisWeekOfMonth()

当前日期所在月份的第几周

cn.hutool.core.date.DateUtil.thisDayOfMonth()

当前日期是这个日期所在月份的第几天

cn.hutool.core.date.DateUtil.thisDayOfWeek()

当前日期是星期几

cn.hutool.core.date.DateUtil.thisDayOfWeekEnum()

当前日期是星期几 枚举

cn.hutool.core.date.DateUtil.thisHour(boolean)

当前日期的小时数部分 是否24小时制

cn.hutool.core.date.DateUtil.thisMinute()

当前日期的分钟数部分

cn.hutool.core.date.DateUtil.thisSecond()

当前日期的秒数部分

cn.hutool.core.date.DateUtil.thisMillisecond()

当前日期的毫秒数部分

cn.hutool.core.date.DateUtil.yearAndQuarter(java.util.Date)

获得指定日期年份和季节<br> 格式:[20131]表示2013年第一季度

cn.hutool.core.date.DateUtil.yearAndQuarter(java.util.Date, java.util.Date)

获得指定日期区间内的年份和季节<br>

方法明细

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

方法描述

获得年的部分

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

年的部分

参考案例:

//获得年的部分
int year =DateUtil.year(DateUtil.date());
System.out.println(year);
Assert.assertNotNull(year);

源码解析:

3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容

方法明细

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

方法描述

获得指定日期所属季度,从1开始计数

支持版本及以上

4.1.0

参数描述:

参数名

描述

Date date

date 日期

返回值:

第几个季度

参考案例:

//获得指定日期所属季度,从1开始计数
int quarter = DateUtil.quarter(DateUtil.date());
System.out.println(quarter);
Assert.assertNotNull(quarter);

源码解析:

3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容

方法明细

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

方法描述

获得指定日期所属季度

支持版本及以上

4.1.0

参数描述:

参数名

描述

Date date

date 日期

返回值:

第几个季度枚举

参考案例:

//获得指定日期所属季度
Quarter quarterEnum = DateUtil.quarterEnum(DateUtil.date());
System.out.println(quarterEnum);
Assert.assertNotNull(quarterEnum);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得月份,从0开始计数

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

月份,从0开始计数

参考案例:

//获得月份,从0开始计数
int month = DateUtil.month(DateUtil.date());
System.out.println(month);
Assert.assertNotNull(month);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得月份

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

{@link Month}

参考案例:

//获得月份
Month monthEnum = DateUtil.monthEnum(DateUtil.date());
System.out.println(monthEnum);
Assert.assertNotNull(monthEnum);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期是所在年份的第几周<br>

此方法返回值与一周的第一天有关,比如:<br>

2016年1月3日为周日,如果一周的第一天为周日,那这天是第二周(返回2)<br>

如果一周的第一天为周一,那这天是第一周(返回1)<br>

跨年的那个星期得到的结果总是1

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

参考案例:

//获得指定日期是所在年份的第几周
int weekOfYear = DateUtil.weekOfYear(DateUtil.date());
System.out.println(weekOfYear);
Assert.assertNotNull(weekOfYear);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期是所在月份的第几周<br>

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

参考案例:

//获得指定日期是所在月份的第几周
int weekOfMonth = DateUtil.weekOfMonth(DateUtil.date());
System.out.println(weekOfMonth);
Assert.assertNotNull(weekOfMonth);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期是这个日期所在月份的第几天<br>

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

参考案例:

//获得指定日期是这个日期所在月份的第几天
int dayOfMonth = DateUtil.dayOfMonth(DateUtil.date());
System.out.println(dayOfMonth);
Assert.assertNotNull(dayOfMonth);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期是这个日期所在年的第几天

支持版本及以上

5.3.6

参数描述:

参数名

描述

Date date

date 日期

返回值:

参考案例:

//获得指定日期是这个日期所在年的第几天
int dayOfYear = DateUtil.dayOfYear(DateUtil.date());
System.out.println(dayOfYear);
Assert.assertNotNull(dayOfYear);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期是星期几,1表示周日,2表示周一

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

参考案例:

//获得指定日期是星期几,1表示周日,2表示周一
int dayOfWeek = DateUtil.dayOfWeek(DateUtil.date());
System.out.println(dayOfWeek);
Assert.assertNotNull(dayOfWeek);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期是星期几

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

{@link Week}

参考案例:

//获得指定日期是星期几
Week dayOfWeekEnum = DateUtil.dayOfWeekEnum(DateUtil.date());
System.out.println(dayOfWeekEnum);
Assert.assertNotNull(dayOfWeekEnum);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期的小时数部分<br>

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

boolean is24HourClock

is24HourClock 是否24小时制

返回值:

小时数

参考案例:

//获得指定日期的小时数部分
boolean is24HourClock = true;
int hour = DateUtil.hour(DateUtil.date(),is24HourClock);
System.out.println(hour);
Assert.assertNotNull(hour);
is24HourClock = false;
hour = DateUtil.hour(DateUtil.date(),is24HourClock);
System.out.println(hour);
Assert.assertNotNull(hour);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期的分钟数部分<br>

例如:10:04:15.250 =》 4

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

分钟数

参考案例:

//获得指定日期的分钟数部分
int minute = DateUtil.minute(DateUtil.date());
System.out.println(minute);
Assert.assertNotNull(minute);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期的秒数部分<br>

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

秒数

参考案例:

//获得指定日期的秒数部分
int second = DateUtil.second(DateUtil.date());
System.out.println(second);
Assert.assertNotNull(second);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期的毫秒数部分<br>

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

毫秒数

参考案例:

//获得指定日期的毫秒数部分
int millisecond = DateUtil.millisecond(DateUtil.date());
System.out.println(millisecond);
Assert.assertNotNull(millisecond);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

是否为上午

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

是否为上午

参考案例:

//是否为上午
boolean isAM = DateUtil.isAM(DateUtil.date());
System.out.println(isAM);
Assert.assertNotNull(isAM);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

是否为下午

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

是否为下午

参考案例:

//是否为下午
boolean isPM = DateUtil.isPM(DateUtil.date());
System.out.println(isPM);
Assert.assertNotNull(isPM);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回今年

支持版本及以上

参数描述:

参数名

描述

返回值:

今年

参考案例:

//今年
int thisYear = DateUtil.thisYear();
System.out.println(thisYear);
Assert.assertNotNull(thisYear);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回当前月份

支持版本及以上

参数描述:

参数名

描述

返回值:

当前月份

参考案例:

//当前月份
int thisMonth = DateUtil.thisMonth();
System.out.println(thisMonth);
Assert.assertNotNull(thisMonth);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回当前月份

支持版本及以上

参数描述:

参数名

描述

返回值:

当前月份 {@link Month}

参考案例:

//当前月份
Month thisMonthEnum = DateUtil.thisMonthEnum();
System.out.println(thisMonthEnum);
Assert.assertNotNull(thisMonthEnum);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回当前日期所在年份的第几周

支持版本及以上

参数描述:

参数名

描述

返回值:

当前日期所在年份的第几周

参考案例:

//当前日期所在年份的第几周
int thisWeekOfYear = DateUtil.thisWeekOfYear();
System.out.println(thisWeekOfYear);
Assert.assertNotNull(thisWeekOfYear);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回当前日期所在月份的第几周

支持版本及以上

参数描述:

参数名

描述

返回值:

当前日期所在月份的第几周

参考案例:

//当前日期所在月份的第几周
int thisWeekOfMonth = DateUtil.thisWeekOfMonth();
System.out.println(thisWeekOfMonth);
Assert.assertNotNull(thisWeekOfMonth);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回当前日期是这个日期所在月份的第几天

支持版本及以上

参数描述:

参数名

描述

返回值:

当前日期是这个日期所在月份的第几天

参考案例:

//当前日期是这个日期所在月份的第几天
int thisDayOfMonth = DateUtil.thisDayOfMonth();
System.out.println(thisDayOfMonth);
Assert.assertNotNull(thisDayOfMonth);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回当前日期是星期几

支持版本及以上

参数描述:

参数名

描述

返回值:

当前日期是星期几

参考案例:

//当前日期是星期几
int thisDayOfWeek = DateUtil.thisDayOfWeek();
System.out.println(thisDayOfWeek);
Assert.assertNotNull(thisDayOfWeek);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回当前日期是星期几

支持版本及以上

参数描述:

参数名

描述

返回值:

当前日期是星期几 {@link Week}

参考案例:

//当前日期是星期几
Week thisDayOfWeekEnum = DateUtil.thisDayOfWeekEnum();
System.out.println(thisDayOfWeekEnum);
Assert.assertNotNull(thisDayOfWeekEnum);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回当前日期的小时数部分

支持版本及以上

参数描述:

参数名

描述

boolean is24HourClock

is24HourClock 是否24小时制

返回值:

当前日期的小时数部分<br>

参考案例:

//当前日期的小时数部分
is24HourClock = true;
int thisHour = DateUtil.thisHour(is24HourClock);
System.out.println(thisHour);
Assert.assertNotNull(thisHour);
is24HourClock = false;
thisHour = DateUtil.thisHour(is24HourClock);
System.out.println(thisHour);
Assert.assertNotNull(thisHour);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回当前日期的分钟数部分

支持版本及以上

参数描述:

参数名

描述

返回值:

当前日期的分钟数部分<br>

参考案例:

//当前日期的分钟数部分
int thisMinute = DateUtil.thisMinute();
System.out.println(thisMinute);
Assert.assertNotNull(thisMinute);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回当前日期的秒数部分

支持版本及以上

参数描述:

参数名

描述

返回值:

当前日期的秒数部分<br>

参考案例:

//当前日期的秒数部分
int thisSecond = DateUtil.thisSecond();
System.out.println(thisSecond);
Assert.assertNotNull(thisSecond);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

返回当前日期的毫秒数部分

支持版本及以上

参数描述:

参数名

描述

返回值:

当前日期的毫秒数部分<br>

参考案例:

//当前日期的毫秒数部分
int thisMillisecond = DateUtil.thisMillisecond();
System.out.println(thisMillisecond);
Assert.assertNotNull(thisMillisecond);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期年份和季节<br>

格式:[20131]表示2013年第一季度

支持版本及以上

参数描述:

参数名

描述

Date date

date 日期

返回值:

Quarter ,类似于 20132

参考案例:

String yearAndQuarter = DateUtil.yearAndQuarter(DateUtil.date());
System.out.println(yearAndQuarter);
Assert.assertNotNull(yearAndQuarter);

源码解析:

​​3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容​​

方法明细

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

方法描述

获得指定日期区间内的年份和季节<br>

支持版本及以上

参数描述:

参数名

描述

Date startDate

startDate 起始日期(包含)

Date endDate

endDate 结束日期(包含)

返回值:

季度列表 ,元素类似于 20132

参考案例:

//获得指定日期区间内的年份和季节
String yearAndQuarter = DateUtil.yearAndQuarter(DateUtil.parse("2018-12-01"));
Assert.assertEquals("20184", yearAndQuarter);

LinkedHashSet<String> yearAndQuarters = DateUtil.yearAndQuarter(DateUtil.parse("2018-09-10"), DateUtil.parse("2018-12-20"));
List<String> list = CollUtil.list(false, yearAndQuarters);
Assert.assertEquals(2, list.size());
Assert.assertEquals("20183", list.get(0));
Assert.assertEquals("20184", list.get(1));

LinkedHashSet<String> yearAndQuarters2 = DateUtil.yearAndQuarter(DateUtil.parse("2018-10-10"), DateUtil.parse("2018-12-10"));
List<String> list2 = CollUtil.list(false, yearAndQuarters2);
Assert.assertEquals(1, list2.size());
Assert.assertEquals("20184", list2.get(0));

源码解析:

3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容



举报

相关推荐

0 条评论