文章23 | 阅读 31920 | 点赞0
万字博文教你搞懂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> |
获得年的部分
参数名 | 描述 |
---|---|
Date date | date 日期 |
年的部分
//获得年的部分
int year =DateUtil.year(DateUtil.date());
System.out.println(year);
Assert.assertNotNull(year);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期所属季度,从1开始计数
4.1.0
参数名 | 描述 |
---|---|
Date date | date 日期 |
第几个季度
//获得指定日期所属季度,从1开始计数
int quarter = DateUtil.quarter(DateUtil.date());
System.out.println(quarter);
Assert.assertNotNull(quarter);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期所属季度
4.1.0
参数名 | 描述 |
---|---|
Date date | date 日期 |
第几个季度枚举
//获得指定日期所属季度
Quarter quarterEnum = DateUtil.quarterEnum(DateUtil.date());
System.out.println(quarterEnum);
Assert.assertNotNull(quarterEnum);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得月份,从0开始计数
参数名 | 描述 |
---|---|
Date date | date 日期 |
月份,从0开始计数
//获得月份,从0开始计数
int month = DateUtil.month(DateUtil.date());
System.out.println(month);
Assert.assertNotNull(month);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得月份
参数名 | 描述 |
---|---|
Date date | date 日期 |
{@link Month}
//获得月份
Month monthEnum = DateUtil.monthEnum(DateUtil.date());
System.out.println(monthEnum);
Assert.assertNotNull(monthEnum);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期是所在年份的第几周<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(时间工具类)-获取日期的各种内容
获得指定日期是所在月份的第几周<br>
参数名 | 描述 |
---|---|
Date date | date 日期 |
周
//获得指定日期是所在月份的第几周
int weekOfMonth = DateUtil.weekOfMonth(DateUtil.date());
System.out.println(weekOfMonth);
Assert.assertNotNull(weekOfMonth);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期是这个日期所在月份的第几天<br>
参数名 | 描述 |
---|---|
Date date | date 日期 |
天
//获得指定日期是这个日期所在月份的第几天
int dayOfMonth = DateUtil.dayOfMonth(DateUtil.date());
System.out.println(dayOfMonth);
Assert.assertNotNull(dayOfMonth);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期是这个日期所在年的第几天
5.3.6
参数名 | 描述 |
---|---|
Date date | date 日期 |
天
//获得指定日期是这个日期所在年的第几天
int dayOfYear = DateUtil.dayOfYear(DateUtil.date());
System.out.println(dayOfYear);
Assert.assertNotNull(dayOfYear);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期是星期几,1表示周日,2表示周一
参数名 | 描述 |
---|---|
Date date | date 日期 |
天
//获得指定日期是星期几,1表示周日,2表示周一
int dayOfWeek = DateUtil.dayOfWeek(DateUtil.date());
System.out.println(dayOfWeek);
Assert.assertNotNull(dayOfWeek);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期是星期几
参数名 | 描述 |
---|---|
Date date | date 日期 |
{@link Week}
//获得指定日期是星期几
Week dayOfWeekEnum = DateUtil.dayOfWeekEnum(DateUtil.date());
System.out.println(dayOfWeekEnum);
Assert.assertNotNull(dayOfWeekEnum);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期的小时数部分<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(时间工具类)-获取日期的各种内容
获得指定日期的分钟数部分<br>
例如:10:04:15.250 =》 4
参数名 | 描述 |
---|---|
Date date | date 日期 |
分钟数
//获得指定日期的分钟数部分
int minute = DateUtil.minute(DateUtil.date());
System.out.println(minute);
Assert.assertNotNull(minute);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期的秒数部分<br>
参数名 | 描述 |
---|---|
Date date | date 日期 |
秒数
//获得指定日期的秒数部分
int second = DateUtil.second(DateUtil.date());
System.out.println(second);
Assert.assertNotNull(second);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期的毫秒数部分<br>
参数名 | 描述 |
---|---|
Date date | date 日期 |
毫秒数
//获得指定日期的毫秒数部分
int millisecond = DateUtil.millisecond(DateUtil.date());
System.out.println(millisecond);
Assert.assertNotNull(millisecond);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
是否为上午
参数名 | 描述 |
---|---|
Date date | date 日期 |
是否为上午
//是否为上午
boolean isAM = DateUtil.isAM(DateUtil.date());
System.out.println(isAM);
Assert.assertNotNull(isAM);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
是否为下午
参数名 | 描述 |
---|---|
Date date | date 日期 |
是否为下午
//是否为下午
boolean isPM = DateUtil.isPM(DateUtil.date());
System.out.println(isPM);
Assert.assertNotNull(isPM);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
返回今年
参数名 | 描述 |
---|
今年
//今年
int thisYear = DateUtil.thisYear();
System.out.println(thisYear);
Assert.assertNotNull(thisYear);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
返回当前月份
参数名 | 描述 |
---|
当前月份
//当前月份
int thisMonth = DateUtil.thisMonth();
System.out.println(thisMonth);
Assert.assertNotNull(thisMonth);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
返回当前月份
参数名 | 描述 |
---|
当前月份 {@link Month}
//当前月份
Month thisMonthEnum = DateUtil.thisMonthEnum();
System.out.println(thisMonthEnum);
Assert.assertNotNull(thisMonthEnum);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
返回当前日期所在年份的第几周
参数名 | 描述 |
---|
当前日期所在年份的第几周
//当前日期所在年份的第几周
int thisWeekOfYear = DateUtil.thisWeekOfYear();
System.out.println(thisWeekOfYear);
Assert.assertNotNull(thisWeekOfYear);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
返回当前日期所在月份的第几周
参数名 | 描述 |
---|
当前日期所在月份的第几周
//当前日期所在月份的第几周
int thisWeekOfMonth = DateUtil.thisWeekOfMonth();
System.out.println(thisWeekOfMonth);
Assert.assertNotNull(thisWeekOfMonth);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
返回当前日期是这个日期所在月份的第几天
参数名 | 描述 |
---|
当前日期是这个日期所在月份的第几天
//当前日期是这个日期所在月份的第几天
int thisDayOfMonth = DateUtil.thisDayOfMonth();
System.out.println(thisDayOfMonth);
Assert.assertNotNull(thisDayOfMonth);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
返回当前日期是星期几
参数名 | 描述 |
---|
当前日期是星期几
//当前日期是星期几
int thisDayOfWeek = DateUtil.thisDayOfWeek();
System.out.println(thisDayOfWeek);
Assert.assertNotNull(thisDayOfWeek);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
返回当前日期是星期几
参数名 | 描述 |
---|
当前日期是星期几 {@link Week}
//当前日期是星期几
Week thisDayOfWeekEnum = DateUtil.thisDayOfWeekEnum();
System.out.println(thisDayOfWeekEnum);
Assert.assertNotNull(thisDayOfWeekEnum);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
返回当前日期的小时数部分
参数名 | 描述 |
---|---|
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(时间工具类)-获取日期的各种内容
返回当前日期的分钟数部分
参数名 | 描述 |
---|
当前日期的分钟数部分<br>
//当前日期的分钟数部分
int thisMinute = DateUtil.thisMinute();
System.out.println(thisMinute);
Assert.assertNotNull(thisMinute);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
返回当前日期的秒数部分
参数名 | 描述 |
---|
当前日期的秒数部分<br>
//当前日期的秒数部分
int thisSecond = DateUtil.thisSecond();
System.out.println(thisSecond);
Assert.assertNotNull(thisSecond);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
返回当前日期的毫秒数部分
参数名 | 描述 |
---|
当前日期的毫秒数部分<br>
//当前日期的毫秒数部分
int thisMillisecond = DateUtil.thisMillisecond();
System.out.println(thisMillisecond);
Assert.assertNotNull(thisMillisecond);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期年份和季节<br>
格式:[20131]表示2013年第一季度
参数名 | 描述 |
---|---|
Date date | date 日期 |
Quarter ,类似于 20132
String yearAndQuarter = DateUtil.yearAndQuarter(DateUtil.date());
System.out.println(yearAndQuarter);
Assert.assertNotNull(yearAndQuarter);
3hutool源码分析:DateUtil(时间工具类)-获取日期的各种内容
获得指定日期区间内的年份和季节<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(时间工具类)-获取日期的各种内容
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://xiaoxuzhu.blog.csdn.net/article/details/117305070
内容来源于网络,如有侵权,请联系作者删除!