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

x33g5p2x  于2021-12-18 转载在 其他  
字(12.6k)|赞(0)|评价(0)|浏览(997)

万字博文教你搞懂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 datedate 日期

返回值:

年的部分

参考案例:

//获得年的部分
		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 datedate 日期

返回值:

第几个季度

参考案例:

//获得指定日期所属季度,从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 datedate 日期

返回值:

第几个季度枚举

参考案例:

//获得指定日期所属季度
		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 datedate 日期

返回值:

月份,从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 datedate 日期

返回值:

{@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 datedate 日期

返回值:

参考案例:

//获得指定日期是所在年份的第几周
		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 datedate 日期

返回值:

参考案例:

//获得指定日期是所在月份的第几周
		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 datedate 日期

返回值:

参考案例:

//获得指定日期是这个日期所在月份的第几天
		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 datedate 日期

返回值:

参考案例:

//获得指定日期是这个日期所在年的第几天
		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 datedate 日期

返回值:

参考案例:

//获得指定日期是星期几,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 datedate 日期

返回值:

{@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 datedate 日期
boolean is24HourClockis24HourClock 是否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 datedate 日期

返回值:

分钟数

参考案例:

//获得指定日期的分钟数部分
		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 datedate 日期

返回值:

秒数

参考案例:

//获得指定日期的秒数部分
		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 datedate 日期

返回值:

毫秒数

参考案例:

//获得指定日期的毫秒数部分
		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 datedate 日期

返回值:

是否为上午

参考案例:

//是否为上午
		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 datedate 日期

返回值:

是否为下午

参考案例:

//是否为下午
		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 is24HourClockis24HourClock 是否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 datedate 日期

返回值:

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 startDatestartDate 起始日期(包含)
Date endDateendDate 结束日期(包含)

返回值:

季度列表 ,元素类似于 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(时间工具类)-获取日期的各种内容

相关文章