Hutool 常用工具类介绍-DateUtil

这篇具有很好参考价值的文章主要介绍了Hutool 常用工具类介绍-DateUtil。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

日期格式转化及计算,比较使我们最常用的功能,现就工具类用法归结如下

测试pom

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring.cloud.alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- 引入 SpringMVC 相关依赖,并实现对其的自动配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.22</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.8.2</version>
            <scope>test</scope>
        </dependency>




        <!-- 引入 Spring Cloud Alibaba Stream RocketMQ 相关依赖,将 RocketMQ 作为消息队列,并实现对其的自动配置 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-stream-rocketmq</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

字符串转日期

DateUtil.parse 方法
Hutool 常用工具类介绍-DateUtil
DateUtil.parse 方法会自动识别一些常用格式,包括:

yyyy-MM-dd HH:mm:ss

yyyy/MM/dd HH:mm:ss

yyyy.MM.dd HH:mm:ss

yyyy年MM月dd日 HH时mm分ss秒

yyyy-MM-dd yyyy/MM/dd

yyyy.MM.dd HH:mm:ss

HH时mm分ss秒

yyyy-MM-dd HH:mm

yyyy-MM-dd HH:mm:ss.SSS

yyyyMMddHHmmss

yyyyMMddHHmmssSSS

yyyyMMdd

EEE, dd MMM yyyy HH:mm:ss z

EEE MMM dd HH:mm:ss zzz yyyy

yyyy-MM-dd’T’HH:mm:ss’Z’

yyyy-MM-dd’T’HH:mm:ss.SSS’Z’

yyyy-MM-dd’T’HH:mm:ssZ

yyyy-MM-dd’T’HH:mm:ss.SSSZ

方法 描述
cn.hutool.core.date.DateUtil.parseLocalDateTime(java.lang.CharSequence)
构建LocalDateTime对象
格式:yyyy-MM-dd HH:mm:ss
cn.hutool.core.date.DateUtil.parseLocalDateTime(java.lang.CharSequence, java.lang.String)
构建LocalDateTime对象
cn.hutool.core.date.DateUtil.parse(java.lang.CharSequence, java.text.DateFormat)
构建DateTime对象
cn.hutool.core.date.DateUtil.parse(java.lang.CharSequence, cn.hutool.core.date.format.DateParser)
构建DateTime对象
cn.hutool.core.date.DateUtil.parse(java.lang.CharSequence, java.time.format.DateTimeFormatter)
构建DateTime对象
cn.hutool.core.date.DateUtil.parse(java.lang.CharSequence, java.lang.String)
将特定格式的日期转换为Date对象
cn.hutool.core.date.DateUtil.parse(java.lang.CharSequence, java.lang.String, java.util.Locale)
将特定格式的日期转换为Date对象
cn.hutool.core.date.DateUtil.parse(java.lang.String, java.lang.String[])
通过给定的日期格式解析日期时间字符串。
传入的日期格式会逐个尝试,直到解析成功,
返回{@link DateTime}对象,否则抛出{@link DateException}异常。
cn.hutool.core.date.DateUtil.parseDateTime(java.lang.CharSequence)
解析日期时间字符串,格式支持:
 yyyy-MM-dd HH:mm:ss 
yyyy/MM/dd HH:mm:ss
yyyy.MM.dd HH:mm:ss
yyyy年MM月dd日 HH:mm:ss
cn.hutool.core.date.DateUtil.parseDate(java.lang.CharSequence)
解析日期字符串,忽略时分秒,支持的格式包括:
 yyyy-MM-dd yyyy/MM/dd yyyy.MM.dd yyyy年MM月dd日 
cn.hutool.core.date.DateUtil.parseTime(java.lang.CharSequence)
解析时间,格式HH:mm:ss,日期部分默认为1970-01-01
cn.hutool.core.date.DateUtil.parseTimeToday(java.lang.CharSequence)
解析时间,格式HH:mm 或 HH:mm:ss,日期默认为今天
cn.hutool.core.date.DateUtil.parseUTC(java.lang.String)
解析UTC时间,格式:
  1. yyyy-MM-dd’T’HH:mm:ss’Z’
  2. yyyy-MM-dd’T’HH:mm:ss.SSS’Z’
  3. yyyy-MM-dd’T’HH:mm:ssZ
  4. yyyy-MM-dd’T’HH:mm:ss.SSSZ
cn.hutool.core.date.DateUtil.parseCST(java.lang.CharSequence)
解析CST时间,格式:
  1. EEE MMM dd HH:mm:ss z yyyy
    (例如:Wed Aug 01 00:00:00 CST 2012)
cn.hutool.core.date.DateUtil.parse(java.lang.CharSequence)
将日期字符串转换为{@link DateTime}对象,格式:
  1. yyyy-MM-dd HH:mm:ss
  2. yyyy/MM/dd HH:mm:ss
  3. yyyy.MM.dd HH:mm:ss
  4. yyyy年MM月dd日 HH时mm分ss秒
  5. yyyy-MM-dd
  6. yyyy/MM/dd
  7. yyyy.MM.dd
  8. HH:mm:ss
  9. HH时mm分ss秒
  10. yyyy-MM-dd HH:mm
  11. yyyy-MM-dd HH:mm:ss.SSS
  12. yyyyMMddHHmmss
  13. yyyyMMddHHmmssSSS
  14. yyyyMMdd
  15. EEE, dd MMM yyyy HH:mm:ss z
  16. EEE MMM dd HH:mm:ss zzz yyyy
  17. yyyy-MM-dd’T’HH:mm:ss’Z’
  18. yyyy-MM-dd’T’HH:mm:ss.SSS’Z’
  19. yyyy-MM-dd’T’HH:mm:ssZ
  20. yyyy-MM-dd’T’HH:mm:ss.SSSZ
// 测试字符串与LocalDateTime的互相转换
        String strDate = "2022-12-01 17:02:30";
        LocalDateTime ldt = DateUtil.parseLocalDateTime(strDate);
        String strDate1 = DateUtil.formatLocalDateTime(ldt);
        System.out.println(ldt);
        System.out.println(strDate1);

        String strDate2 = "2022-12-01 17:02:30.111";
        ldt = DateUtil.parseLocalDateTime(strDate2, DatePattern.NORM_DATETIME_MS_PATTERN);
        strDate2 = DateUtil.format(ldt, DatePattern.NORM_DATETIME_PATTERN);
        System.out.println(ldt);

----------------------------1
2022-05-06 00:00:00
----------------------------1
2022-12-01T17:02:30
2022-12-01 17:02:30
2022-12-01T17:02:30.111
2022-12-01 17:02:30

package com.liu.test.stream.rocketmq.consumer.Utils;

import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import lombok.extern.slf4j.Slf4j;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;

import org.junit.Assert;
import org.junit.Test;

/**
 * @author liu
 * @date 2022年05月06日 10:57
 */
@Slf4j
public class DataUtileTest {

    public void test(){
        //当前时间
        Date date = DateUtil.date();
        //当前时间
        Date date2 = DateUtil.date(Calendar.getInstance());
        //当前时间
        Date date3 = DateUtil.date(System.currentTimeMillis());
        //当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
        String now = DateUtil.now();
        //当前日期字符串,格式:yyyy-MM-dd
        String today= DateUtil.today();



    }

    @Test
    public  void test1() {
       // int i = DateUtil.ageOfNow("20110101");
       // DateUtil.ageOfNow()
        String dateStr = "2022-05-06";
        Date date = DateUtil.parse(dateStr);


        System.out.println("----------------------------1");
        System.out.println(date);
        System.out.println("----------------------------1");

        // 测试字符串与LocalDateTime的互相转换
        String strDate = "2022-12-01 17:02:30";
        LocalDateTime ldt = DateUtil.parseLocalDateTime(strDate);
        String strDate1 = DateUtil.formatLocalDateTime(ldt);
        System.out.println(ldt);
        System.out.println(strDate1);

        String strDate2 = "2022-12-01 17:02:30.111";
        ldt = DateUtil.parseLocalDateTime(strDate2, DatePattern.NORM_DATETIME_MS_PATTERN);
        strDate2 = DateUtil.format(ldt, DatePattern.NORM_DATETIME_PATTERN);
        System.out.println(ldt);
        System.out.println(strDate2);


        String str = "31-Aug-2020";
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.US);

        LocalDateTime localDateTime = LocalDate.parse(str, dtf).atStartOfDay();
        Date date1 = DateUtil.date(localDateTime);
        System.out.println(date1);
        Assert.assertNotNull(date1);


        String ymd1 = DateUtil.parse("2019-3-21 12:20:15", "yyyy-MM-dd").toString(DatePattern.PURE_DATE_PATTERN);
        Assert.assertEquals("20190321", ymd1);

        String ymd = DateUtil.parse("2021-05-16 21:20:15", "yyyy-MM-dd",Locale.US).toString(DatePattern.PURE_DATE_PATTERN);
        Assert.assertEquals("20210516", ymd);

        String ymd2 = DateUtil.parse("2021-05-16 21:20:15", "yyyy/MM/dd HH:mm:ss","yyyy.MM.dd HH:mm:ss","yyyy-MM-dd HH:mm:ss").toString(DatePattern.PURE_DATE_PATTERN);
        Assert.assertEquals("20210516", ymd2);

        DateTime dateTime =DateUtil.parseDateTime("2021-05-16 21:20:15");
        Assert.assertEquals("2021-05-16 21:20:15", dateTime.toString("yyyy-MM-dd HH:mm:ss"));


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



        String beginStr5 = "22:10:00";
        DateTime date5 = DateUtil.parseTimeToday(beginStr5);
        System.out.println("date5:::::"+date5);
        String str5 = "2022-05-06 22:10:00";
        Date today1 = DateUtil.parse(str5);
        System.out.println("today1:::::"+today1);
        Assert.assertEquals(DateUtil.format(today1,"yyyy-MM-dd HH:mm:ss"), date5.toString());
        testParseUTC();
    }

    public static void testParseUTC(){
        String dateStr1 = "2018-09-13T05:34:31Z";
        DateTime dt = DateUtil.parseUTC(dateStr1);

        // parse方法支持UTC格式测试
        DateTime dt2 = DateUtil.parse(dateStr1);
        Assert.assertEquals(dt, dt2);

        // 默认使用Pattern对应的时区,即UTC时区
        String dateStr = dt.toString();
        Assert.assertEquals("2018-09-13 05:34:31", dateStr);

        // 使用当前(上海)时区
        dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00"));
        Assert.assertEquals("2018-09-13 13:34:31", dateStr);

        dateStr1 = "2018-09-13T13:34:32+0800";
        dt = DateUtil.parseUTC(dateStr1);
        dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00"));
        Assert.assertEquals("2018-09-13 13:34:32", dateStr);

        dateStr1 = "2018-09-13T13:34:33+08:00";
        dt = DateUtil.parseUTC(dateStr1);
        dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00"));
        Assert.assertEquals("2018-09-13 13:34:33", dateStr);

        dateStr1 = "2018-09-13T13:34:34+0800";
        dt = DateUtil.parse(dateStr1);
        assert dt != null;
        dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00"));
        Assert.assertEquals("2018-09-13 13:34:34", dateStr);

        dateStr1 = "2018-09-13T13:34:35+08:00";
        dt = DateUtil.parse(dateStr1);
        assert dt != null;
        dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00"));
        Assert.assertEquals("2018-09-13 13:34:35", dateStr);

        dateStr1 = "2018-09-13T13:34:36.999+0800";
        dt = DateUtil.parseUTC(dateStr1);
        final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DatePattern.NORM_DATETIME_MS_PATTERN);
        simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
        dateStr = dt.toString(simpleDateFormat);
        Assert.assertEquals("2018-09-13 13:34:36.999", dateStr);

        dateStr1 = "2018-09-13T13:34:37.999+08:00";
        dt = DateUtil.parseUTC(dateStr1);
        dateStr = dt.toString(simpleDateFormat);
        Assert.assertEquals("2018-09-13 13:34:37.999", dateStr);

        dateStr1 = "2018-09-13T13:34:38.999+0800";
        dt = DateUtil.parse(dateStr1);
        assert dt != null;
        dateStr = dt.toString(simpleDateFormat);
        Assert.assertEquals("2018-09-13 13:34:38.999", dateStr);

        dateStr1 = "2018-09-13T13:34:39.999+08:00";
        dt = DateUtil.parse(dateStr1);
        assert dt != null;
        dateStr = dt.toString(simpleDateFormat);
        Assert.assertEquals("2018-09-13 13:34:39.999", dateStr);

        // 使用UTC时区
        dateStr1 = "2018-09-13T13:34:39.99";
        dt = DateUtil.parse(dateStr1);
        assert dt != null;
        dateStr = dt.toString();
        Assert.assertEquals("2018-09-13 13:34:39", dateStr);

    }
}

Connected to the target VM, address: ‘127.0.0.1:52523’, transport: ‘socket’
----------------------------1
2022-05-06 00:00:00
----------------------------1
2022-12-01T17:02:30
2022-12-01 17:02:30
2022-12-01T17:02:30.111
2022-12-01 17:02:30
2020-08-31 00:00:00
date5:::::2022-05-06 22:10:00
today1:::::2022-05-06 22:10:00
Disconnected from the target VM, address: ‘127.0.0.1:52523’, transport: ‘socket’

Process finished with exit code 0

格式化日期

Hutool 常用工具类介绍-DateUtil

方法 描述
cn.hutool.core.date.DateUtil.formatLocalDateTime(java.time.LocalDateTime)
格式化日期时间<br> 格式 yyyy-MM-dd HH:mm:ss
cn.hutool.core.date.DateUtil.format(java.time.LocalDateTime, java.lang.String)
根据特定格式格式化日期
cn.hutool.core.date.DateUtil.format(java.util.Date, java.lang.String)
根据特定格式格式化日期
cn.hutool.core.date.DateUtil.format(java.util.Date, cn.hutool.core.date.format.DatePrinter)
根据特定格式格式化日期
cn.hutool.core.date.DateUtil.format(java.util.Date, java.text.DateFormat)
根据特定格式格式化日期
cn.hutool.core.date.DateUtil.format(java.util.Date, java.time.format.DateTimeFormatter)
根据特定格式格式化日期
cn.hutool.core.date.DateUtil.formatDateTime(java.util.Date)
格式化日期时间<br> 格式 yyyy-MM-dd HH:mm:ss
cn.hutool.core.date.DateUtil.formatDate(java.util.Date)
格式化日期部分(不包括时间)<br> 格式 yyyy-MM-dd
cn.hutool.core.date.DateUtil.formatTime(java.util.Date)
格式化时间<br> 格式 HH:mm:ss
cn.hutool.core.date.DateUtil.formatHttpDate(java.util.Date)
格式化为Http的标准日期格式<br> 标准日期格式遵循RFC 1123规范,格式类似于:Fri, 31 Dec 1999 23:59:59 GMT
cn.hutool.core.date.DateUtil.formatChineseDate(java.util.Date, boolean, boolean)
格式化为中文日期格式,如果isUppercase为false,则返回类似:2018年10月24日,否则返回二〇一八年十月二十四日
 @Test
    @SneakyThrows
    public void testFormat (){
        String strDate = "2019-12-01 17:02:30";
        LocalDateTime ldt = DateUtil.parseLocalDateTime(strDate);
        String strDate1 = DateUtil.formatLocalDateTime(ldt);
        Assert.assertEquals(strDate, strDate1);


        String strDate2 = "2019-12-01 17:02:30.111";
        ldt = DateUtil.parseLocalDateTime(strDate2, DatePattern.NORM_DATETIME_MS_PATTERN);
        strDate1 = DateUtil.format(ldt, DatePattern.NORM_DATETIME_PATTERN);
        Assert.assertEquals(strDate, strDate1);

        String strDate3 = "2021-05-16";
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
        Date localDate = sdf3.parse(strDate3);
        Assert.assertEquals(strDate3, DateUtil.format(localDate, DatePattern.NORM_DATE_PATTERN));



        //根据特定格式格式化日期
        /*String str = "2021-05-16";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
        Date date = DateUtil.parse(str);
        String dateStr = DateUtil.format(date,sdf);
        System.out.println(dateStr);
        Assert.assertEquals(str, dateStr);*/


        //根据特定格式格式化日期
        /*String str = "2021-05-16";
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.US);
        Date date = DateUtil.parse(str);
        String dateStr = DateUtil.format(date,dtf);
        System.out.println(dateStr);
        Assert.assertEquals(str, dateStr);*/


        /*String dateStr = "2017-03-01";
        Date date = DateUtil.parse(dateStr);

        String format = DateUtil.format(date, "yyyy/MM/dd");
        Assert.assertEquals("2017/03/01", format);

        // 常用格式的格式化
        String formatDate = DateUtil.formatDate(date);
        Assert.assertEquals("2017-03-01", formatDate);
        String formatDateTime = DateUtil.formatDateTime(date);
        Assert.assertEquals("2017-03-01 00:00:00", formatDateTime);
        String formatTime = DateUtil.formatTime(date);
        Assert.assertEquals("00:00:00", formatTime);*/


        String dateStr = "2017-03-01";
        Date date = DateUtil.parse(dateStr);

        String format = DateUtil.format(date, "yyyy/MM/dd");
        Assert.assertEquals("2017/03/01", format);

        // 常用格式的格式化
        String formatDate = DateUtil.formatDate(date);
        Assert.assertEquals("2017-03-01", formatDate);
        String formatDateTime = DateUtil.formatDateTime(date);
        Assert.assertEquals("2017-03-01 00:00:00", formatDateTime);
        String formatTime = DateUtil.formatTime(date);
        Assert.assertEquals("00:00:00", formatTime);


        String formatChineseDate = DateUtil.formatChineseDate(DateUtil.parse("2018-02-24"), true, false);
        Assert.assertEquals("二〇一八年二月二十四日", formatChineseDate);



    }

获取年,季度,月,周,日,时,分,秒,毫秒的开始时间和结束时间

Hutool 常用工具类介绍-DateUtil

方法 描述
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)
获取指定日期偏移指定时间后的时间,生成的偏移日期不影响原日期

Hutool 常用工具类介绍-DateUtil

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);
        DateTime dateTime1 = DateUtil.endOfMinute(date2);
        System.out.println(dateTime1);
        Assert.assertEquals(999, DateUtil.millisecond(dateTime));
 @Test
    public void testOffset(){

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


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

        //方法名称:cn.hutool.core.date.DateUtil.round(java.util.Date, cn.hutool.core.date.DateField)
        /*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());*/

        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());



    }

Hutool 常用工具类介绍-DateUtil

 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());
        DateTime dateTime1 = DateUtil.beginOfMinute(dateTime);
        System.out.println(dateTime1);
        Assert.assertEquals("2021-05-16 22:50:00", dateTime1.toString());
        DateTime dateTime2 = DateUtil.beginOfDay(dateTime);
        System.out.println(dateTime2);
        Assert.assertEquals("2021-05-16 00:00:00", dateTime2.toString());
        //昨天
		DateTime dateTime = DateUtil.yesterday();
		System.out.println(dateTime);
		Assert.assertNotNull(dateTime);

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

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

	//下周
	DateTime dateTime = DateUtil.nextWeek();
	System.out.println(dateTime);
	Assert.assertNotNull(dateTime);
	//上个月
	DateTime dateTime = DateUtil.lastMonth();
	System.out.println(dateTime);
	Assert.assertNotNull(dateTime);
		//偏移月
		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());

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

        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());

日期计算

方法 描述
cn.hutool.core.date.DateUtil.between
(java.util.Date, java.util.Date, cn.hutool.core.date.DateUnit)
判断两个日期相差的时长,只保留绝对值
cn.hutool.core.date.DateUtil.between
(java.util.Date, java.util.Date, cn.hutool.core.date.DateUnit, boolean)
判断两个日期相差的时长
cn.hutool.core.date.DateUtil.betweenMs
(java.util.Date, java.util.Date)
判断两个日期相差的毫秒数
cn.hutool.core.date.DateUtil.betweenDay
(java.util.Date, java.util.Date, boolean)
判断两个日期相差的天数
 有时候我们计算相差天数的时候需要忽略时分秒。 
比如:2016-02-01 23:59:59和2016-02-02 00:00:00相差一秒
如果isReset为{@code false}相差天数为0。
如果isReset为{@code true}相差天数将被计算为1
cn.hutool.core.date.DateUtil.betweenWeek
(java.util.Date, java.util.Date, boolean)
计算指定指定时间区间内的周数
cn.hutool.core.date.DateUtil.betweenMonth
(java.util.Date, java.util.Date, boolean)
计算两个日期相差月数
在非重置情况下,如果起始日期的天大于结束日期的天,月数要少算1(不足1个月)
cn.hutool.core.date.DateUtil.betweenYear
(java.util.Date, java.util.Date, boolean)
计算两个日期相差年数
在非重置情况下,如果起始日期的月大于结束日期的月,年数要少算1(不足1年)
cn.hutool.core.date.DateUtil.formatBetween
(java.util.Date, java.util.Date, cn.hutool.core.date.BetweenFormatter.Level)
格式化日期间隔输出
cn.hutool.core.date.DateUtil.formatBetween
(java.util.Date, java.util.Date)
格式化日期间隔输出,精确到毫秒
cn.hutool.core.date.DateUtil.formatBetween
(long, cn.hutool.core.date.BetweenFormatter.Level)
格式化日期间隔输出
cn.hutool.core.date.DateUtil.formatBetween
(long)
格式化日期间隔输出,精确到毫秒
cn.hutool.core.date.DateUtil.isIn
(java.util.Date, java.util.Date, java.util.Date)
当前日期是否在日期指定范围内
起始日期和结束日期可以互换
cn.hutool.core.date.DateUtil.isSameTime
(java.util.Date, java.util.Date)
是否为相同时间
此方法比较两个日期的时间戳是否相同
cn.hutool.core.date.DateUtil.isSameDay
(java.util.Date, java.util.Date)
比较两个日期是否为同一天
cn.hutool.core.date.DateUtil.isSameMonth
(java.util.Date, java.util.Date)
比较两个日期是否为同一月
cn.hutool.core.date.DateUtil.spendNt
(long)
计时,常用于记录某段代码的执行时间,单位:纳秒
cn.hutool.core.date.DateUtil.spendMs
(long)
计时,常用于记录某段代码的执行时间,单位:毫秒
cn.hutool.core.date.DateUtil.toIntSecond
(java.util.Date)
格式化成yyMMddHHmm后转换为int型
cn.hutool.core.date.DateUtil.timer()
计时器
计算某个过程花费的时间,精确到毫秒
cn.hutool.core.date.DateUtil.timer
(boolean)
计时器
计算某个过程花费的时间,精确到毫秒
cn.hutool.core.date.DateUtil.createStopWatch()
创建秒表{@link StopWatch},用于对代码块的执行时间计数

使用方法如下:

 StopWatch stopWatch = DateUtil.createStopWatch(); 
// 任务1 stopWatch.start(“任务一”); Thread.sleep(1000); stopWatch.stop();
// 任务2 stopWatch.start(“任务一”); Thread.sleep(2000); stopWatch.stop();
// 打印出耗时 Console.log(stopWatch.prettyPrint());
cn.hutool.core.date.DateUtil.createStopWatch
(java.lang.String)
创建秒表{@link StopWatch},用于对代码块的执行时间计数

使用方法如下:

 StopWatch stopWatch = DateUtil.createStopWatch(“任务名称”);
// 任务1 stopWatch.start(“任务一”); Thread.sleep(1000); stopWatch.stop();
// 任务2 stopWatch.start(“任务一”); Thread.sleep(2000); stopWatch.stop();
// 打印出耗时 Console.log(stopWatch.prettyPrint());
cn.hutool.core.date.DateUtil.ageOfNow
(java.lang.String)
生日转为年龄,计算法定年龄
cn.hutool.core.date.DateUtil.ageOfNow
(java.util.Date)
生日转为年龄,计算法定年龄
cn.hutool.core.date.DateUtil.isLeapYear
(int)
是否闰年
cn.hutool.core.date.DateUtil.age
(java.util.Date, java.util.Date)
计算相对于dateToCompare的年龄,长用于计算指定生日在某年的年龄
cn.hutool.core.date.DateUtil.timeToSecond
(java.lang.String)
HH:mm:ss 时间格式字符串转为秒数
参考:https://github.com/iceroot
cn.hutool.core.date.DateUtil.secondToTime
(int)
秒数转为时间格式(HH:mm:ss)
参考:https://github.com/iceroot
cn.hutool.core.date.DateUtil.range
(java.util.Date, java.util.Date, cn.hutool.core.date.DateField)
创建日期范围生成器
cn.hutool.core.date.DateUtil.rangeToList
(java.util.Date, java.util.Date, cn.hutool.core.date.DateField)
创建日期范围生成器
cn.hutool.core.date.DateUtil.getZodiac
(int, int)
通过生日计算星座
cn.hutool.core.date.DateUtil.getChineseZodiac
(int)
计算生肖,只计算1900年后出生的人
cn.hutool.core.date.DateUtil.compare
(java.util.Date, java.util.Date)
{@code null}安全的日期比较,{@code null}对象排在末尾
cn.hutool.core.date.DateUtil.compare
(java.util.Date, java.util.Date, java.lang.String)
{@code null}安全的日期比较,并只比较指定格式;
{@code null}对象排在末尾, 并指定日期格式;
cn.hutool.core.date.DateUtil.nanosToMillis
(long)
纳秒转毫秒
cn.hutool.core.date.DateUtil.nanosToSeconds
(long)
纳秒转秒,保留小数
cn.hutool.core.date.DateUtil.toInstant
(java.util.Date)
Date对象转换为{@link Instant}对象
cn.hutool.core.date.DateUtil.toInstant
(java.time.temporal.TemporalAccessor)
Date对象转换为{@link Instant}对象
cn.hutool.core.date.DateUtil.toLocalDateTime
(java.time.Instant)
{@link Instant} 转换为 {@link LocalDateTime},使用系统默认时区
cn.hutool.core.date.DateUtil.toLocalDateTime
(java.util.Date)
{@link Date} 转换为 {@link LocalDateTime},使用系统默认时区
cn.hutool.core.date.DateUtil.lengthOfYear
(int)
获得指定年份的总天数
cn.hutool.core.date.DateUtil.lengthOfMonth
(int, boolean)
获得指定月份的总天数

between 判断两个日期相差的时长,只保留绝对值

Hutool 常用工具类介绍-DateUtil

 String dateStr1 = "2017-03-01 22:34:23";
        Date date1 = DateUtil.parse(dateStr1);

        String dateStr2 = "2017-04-01 23:56:14";
        Date date2 = DateUtil.parse(dateStr2);

        // 相差月
        long betweenMonth = DateUtil.betweenMonth(date1, date2, false);
        Assert.assertEquals(1, betweenMonth);// 相差一个月
        // 反向
        betweenMonth = DateUtil.betweenMonth(date2, date1, false);
        Assert.assertEquals(1, betweenMonth);// 相差一个月

        // 相差天
        long betweenDay = DateUtil.between(date1, date2, DateUnit.DAY);
        Assert.assertEquals(31, betweenDay);// 相差一个月,31天
        // 反向
        betweenDay = DateUtil.between(date2, date1, DateUnit.DAY);
        Assert.assertEquals(31, betweenDay);// 相差一个月,31天

        // 相差小时
        long betweenHour = DateUtil.between(date1, date2, DateUnit.HOUR);
        Assert.assertEquals(745, betweenHour);
        // 反向
        betweenHour = DateUtil.between(date2, date1, DateUnit.HOUR);
        Assert.assertEquals(745, betweenHour);

        // 相差分
        long betweenMinute = DateUtil.between(date1, date2, DateUnit.MINUTE);
        Assert.assertEquals(44721, betweenMinute);
        // 反向
        betweenMinute = DateUtil.between(date2, date1, DateUnit.MINUTE);
        Assert.assertEquals(44721, betweenMinute);

        // 相差秒
        long betweenSecond = DateUtil.between(date1, date2, DateUnit.SECOND);
        Assert.assertEquals(2683311, betweenSecond);
        // 反向
        betweenSecond = DateUtil.between(date2, date1, DateUnit.SECOND);
        Assert.assertEquals(2683311, betweenSecond);

        // 相差秒
        long betweenMS = DateUtil.between(date1, date2, DateUnit.MS);
        Assert.assertEquals(2683311000L, betweenMS);
        // 反向
        betweenMS = DateUtil.between(date2, date1, DateUnit.MS);
        Assert.assertEquals(2683311000L, betweenMS);
        long between = DateUtil.between(DateUtil.parse("2019-05-06 02:15:00"), DateUtil.parse("2019-05-06 02:20:00"), DateUnit.HOUR);
        Assert.assertEquals(0, between);

cn.hutool.core.date.DateUtil.betweenYear(java.util.Date, java.util.Date, boolean)
方法描述
计算两个日期相差年数

在非重置情况下,如果起始日期的月大于结束日期的月,年数要少算1(不足1年)

		long betweenYear = DateUtil.betweenYear(DateUtil.parse("2021-05-18 22:15:00"), DateUtil.parse("2020-05-18 21:15:00"),true);
		Assert.assertEquals(1, betweenYear);

		betweenYear = DateUtil.betweenYear(DateUtil.parse("2020-05-18 22:15:00"), DateUtil.parse("2021-05-18 22:15:00"),true);
		Assert.assertEquals(1, betweenYear);

		betweenYear = DateUtil.betweenYear(DateUtil.parse("2020-05-18 22:15:00"), DateUtil.parse("2021-05-18 21:15:00"),false);
		Assert.assertEquals(0, betweenYear);

		betweenYear = DateUtil.betweenYear(DateUtil.parse("2020-05-18 22:15:00"), DateUtil.parse("2021-05-19 22:15:00"),false);
		Assert.assertEquals(1, betweenYear);

		betweenYear = DateUtil.betweenYear(DateUtil.parse("2020-05-18 22:15:00"), DateUtil.parse("2021-04-18 22:15:00"),false);
		Assert.assertEquals(0, betweenYear);

formatBetween(java.util.Date, java.util.Date, cn.hutool.core.date.BetweenFormatter.Level)

level 级别,按照天、小时、分、秒、毫秒分为5个等级

String dateStr1 = "2017-03-01 22:34:23";
        Date date1 = DateUtil.parse(dateStr1);

        String dateStr2 = "2017-04-01 23:56:14";
        Date date2 = DateUtil.parse(dateStr2);

        long between = DateUtil.between(date1, date2, DateUnit.MS);
        String formatBetween = DateUtil.formatBetween(between, BetweenFormatter.Level.MINUTE);
        Assert.assertEquals("31天1小时21分", formatBetween);

isIn(java.util.Date, java.util.Date, java.util.Date)

当前日期是否在日期指定范围内

起始日期和结束日期可以互换

		String dateStr = "2017-03-01 22:34:23.100";
		Date date = DateUtil.parse(dateStr);
		String dateStr1 = "2017-02-01 22:34:23.100";
		Date date1 = DateUtil.parse(dateStr1);

		String dateStr2 = "2017-04-01 23:56:14.001";
		Date date2 = DateUtil.parse(dateStr2);
		boolean isIn = DateUtil.isIn(date,date1,date2);
		Assert.assertEquals(Boolean.TRUE, isIn);
		dateStr = "2017-05-01 22:34:23.100";
		 date = DateUtil.parse(dateStr);
		 isIn = DateUtil.isIn(date,date1,date2);
		Assert.assertEquals(Boolean.FALSE, isIn);

isSameTime(java.util.Date, java.util.Date)

是否为相同时间

此方法比较两个日期的时间戳是否相同

		String dateStr = "2017-02-01 22:34:23.100";
		Date date = DateUtil.parse(dateStr);
		String dateStr1 = "2017-02-01 22:34:23.100";
		Date date1 = DateUtil.parse(dateStr1);
		boolean isSameTime = DateUtil.isSameTime(date,date1);
		Assert.assertEquals(Boolean.TRUE, isSameTime);
		dateStr1 = "2017-02-01 22:34:23.110";
		date1 = DateUtil.parse(dateStr1);
		isSameTime = DateUtil.isSameTime(date,date1);
		Assert.assertEquals(Boolean.FALSE, isSameTime);

		String dateStr1 = "2021-05-19 22:34:23.100";
		Date date1 = DateUtil.parse(dateStr1);
		String dateStr2 = "2021-05-19 23:56:14.001";
		Date date2 = DateUtil.parse(dateStr2);
		boolean isSameDay = DateUtil.isSameDay(date1,date2);
		Assert.assertEquals(Boolean.TRUE, isSameDay);
		 dateStr2 = "2021-05-20 23:56:14.001";
		 date2 = DateUtil.parse(dateStr2);
		 isSameDay = DateUtil.isSameDay(date1,date2);
		Assert.assertEquals(Boolean.FALSE, isSameDay);

Hutool 常用工具类介绍-DateUtil

spendNt(long)

计时,常用于记录某段代码的执行时间,单位:纳秒

		//计时,常用于记录某段代码的执行时间,单位:纳秒
		int j= 0;
		long nanoTimeStart = System.nanoTime();
		for (int i = 0; i < 100000; i++) {
			 j=j+i;
		}
		long nanoTimeEnd = DateUtil.spendNt(nanoTimeStart);
		System.out.println("运行时间为:"+nanoTimeEnd+"纳秒");
		System.out.println("j的值为:"+j);

spendMs(long)
方法描述
计时,常用于记录某段代码的执行时间,单位:毫秒

timer()

		TimeInterval timer = DateUtil.timer();

		// ---------------------------------
		// -------这是执行过程
		// ---------------------------------

		timer.interval();// 花费毫秒数
		timer.intervalRestart();// 返回花费时间,并重置开始时间
		timer.intervalMinute();// 花费分钟数

createStopWatch()

方法描述
创建秒表{@link StopWatch},用于对代码块的执行时间计数

使用方法如下:

StopWatch stopWatch = DateUtil.createStopWatch();

// 任务1
stopWatch.start(“任务一”);
Thread.sleep(1000);
stopWatch.stop();

// 任务2
stopWatch.start(“任务一”);
Thread.sleep(2000);
stopWatch.stop();

// 打印出耗时
Console.log(stopWatch.prettyPrint());

		StopWatch stopWatch = DateUtil.createStopWatch("任务名称");
		// 任务1
		stopWatch.start("任务一");
		Thread.sleep(1000);
		stopWatch.stop();
		// 任务2
		stopWatch.start("任务二");
		Thread.sleep(2000);
		stopWatch.stop();
		// 打印出耗时
		System.out.println(stopWatch.prettyPrint());

年龄计算

Hutool 常用工具类介绍-DateUtil

		String birthDay = "2019-05-19";
		//生日转为年龄,计算法定年龄(生日,标准日期字符串)
		int ageOfNow = DateUtil.ageOfNow(birthDay);
		System.out.println(ageOfNow);

        String d1 = "2000-02-29";
		String d2 = "2018-02-28";
		final int age = DateUtil.age(DateUtil.parseDate(d1), DateUtil.parseDate(d2));
		Assert.assertEquals(18, age);

isLeapYear(int)

方法描述
是否闰年

timeToSecond(java.lang.String)

		int second = DateUtil.timeToSecond("00:01:40");
		Assert.assertEquals(100, second);
		second = DateUtil.timeToSecond("00:00:40");
		Assert.assertEquals(40, second);
		second = DateUtil.timeToSecond("01:00:00");
		Assert.assertEquals(3600, second);
		second = DateUtil.timeToSecond("00:00:00");
		Assert.assertEquals(0, second);

secondToTime(int)

方法描述
秒数转为时间格式(HH:mm:ss)

		String time = DateUtil.secondToTime(3600);
		Assert.assertEquals("01:00:00", time);
		time = DateUtil.secondToTime(3800);
		Assert.assertEquals("01:03:20", time);
		time = DateUtil.secondToTime(0);
		Assert.assertEquals("00:00:00", time);
		time = DateUtil.secondToTime(30);
		Assert.assertEquals("00:00:30", time);

compare(java.util.Date, java.util.Date)

比较结果,如果date1 < date2,返回数小于0,date1==date2返回0,date1 > date2 大于0

    Date date1 = DateUtil.parse("2021-04-13 23:59:59.999");
	Date date2 = DateUtil.parse("2021-04-13 23:59:10");

	Assert.assertEquals(1, DateUtil.compare(date1, date2));
        Date date1 = DateUtil.parse("2021-04-13 23:59:59.999");
		Date date2 = DateUtil.parse("2021-04-13 23:59:10");
		Assert.assertEquals(1, DateUtil.compare(date1, date2, DatePattern.NORM_DATETIME_PATTERN));
		Assert.assertEquals(0, DateUtil.compare(date1, date2, DatePattern.NORM_DATE_PATTERN));
		Assert.assertEquals(0, DateUtil.compare(date1, date2, DatePattern.NORM_DATETIME_MINUTE_PATTERN));
		Date date11 = DateUtil.parse("2021-04-13 23:59:59.999");
		Date date22 = DateUtil.parse("2021-04-11 23:10:10");
		Assert.assertEquals(0, DateUtil.compare(date11, date22, DatePattern.NORM_MONTH_PATTERN));		

求一年,一月的天数

lengthOfYear(int)
int dayOfYear = DateUtil.dayOfYear(DateUtil.parse(“2020-01-01”));
Assert.assertEquals(1, dayOfYear);
int lengthOfYear = DateUtil.lengthOfYear(2020);
Assert.assertEquals(366, lengthOfYear);
int lengthOfMonth = DateUtil.lengthOfMonth(2,true);
Assert.assertEquals(29, lengthOfMonth);
lengthOfMonth = DateUtil.lengthOfMonth(2,false);
Assert.assertEquals(28, lengthOfMonth);

获取当前时间

方法 描述
cn.hutool.core.date.DateUtil.date()
当前时间,转换为{@link DateTime}对象
cn.hutool.core.date.DateUtil.dateSecond()
当前时间,转换为{@link DateTime}对象,忽略毫秒部分
cn.hutool.core.date.DateUtil.current()
当前时间的时间戳
cn.hutool.core.date.DateUtil.currentSeconds()
当前时间的时间戳(秒)
cn.hutool.core.date.DateUtil.now()
当前时间,格式 yyyy-MM-dd HH:mm:ss
cn.hutool.core.date.DateUtil.today()
当前日期,格式 yyyy-MM-dd
// 当前时间
		DateTime date = DateUtil.date();
		System.out.println(date);
		System.out.println(date.toString());
		Assert.assertNotNull(date);
		// 当前时间
		DateTime date = DateUtil.date();
		System.out.println("long时间:"+date.getTime());

		//当前时间 忽略毫秒
		System.out.println("long时间忽略毫秒:"+DateUtil.dateSecond().getTime());
		//当前时间 忽略毫秒部分
		Date date4 = DateUtil.dateSecond();
		Assert.assertNotNull(date4);

常用的时间类型转换

方法 描述
cn.hutool.core.date.DateUtil.dateNew(java.util.Date)
根据已有{@link Date} 产生新的{@link DateTime}对象
cn.hutool.core.date.DateUtil.date(long)
Long类型时间转为{@link DateTime}<br> 只支持毫秒级别时间戳,如果需要秒级别时间戳,请自行×1000
cn.hutool.core.date.DateUtil.date(java.util.Calendar)
{@link Calendar}类型时间转为{@link DateTime}<br> 始终根据已有{@link Calendar} 产生新的{@link DateTime}对象
cn.hutool.core.date.DateUtil.date(java.time.temporal.TemporalAccessor)
{@link TemporalAccessor}类型时间转为{@link DateTime}<br> 始终根据已有{@link TemporalAccessor} 产生新的{@link DateTime}对象

获取日期的各种内容

获取日期的各种内容,包含:年,季度,月,周,星期,日,时,分,秒,毫秒

方法 描述
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>

获得月份,从0开始计数

农历日期工具类ChineseDate

方法 描述
cn.hutool.core.date.ChineseDate.getChineseYear()
获得农历年份
cn.hutool.core.date.ChineseDate.getGregorianYear()
获取公历的年
cn.hutool.core.date.ChineseDate.getMonth()
获取农历的月,从1开始计数
cn.hutool.core.date.ChineseDate.getGregorianMonthBase1()
获取公历的月,从1开始计数
cn.hutool.core.date.ChineseDate.getGregorianMonth()
获取公历的月,从0开始计数
cn.hutool.core.date.ChineseDate.isLeapMonth()
当前农历月份是否为闰月
cn.hutool.core.date.ChineseDate.getChineseMonth()
获得农历月份(中文,例如二月,十二月,或者润一月)
cn.hutool.core.date.ChineseDate.getChineseMonthName()
获得农历月称呼(中文,例如二月,腊月,或者润正月)
cn.hutool.core.date.ChineseDate.getDay()
获取农历的日,从1开始计数
cn.hutool.core.date.ChineseDate.getGregorianDay()
获取公历的日
cn.hutool.core.date.ChineseDate.getChineseDay()
获得农历日
cn.hutool.core.date.ChineseDate.getGregorianDate()
获取公历的Date
cn.hutool.core.date.ChineseDate.getGregorianCalendar()
获取公历的Calendar
cn.hutool.core.date.ChineseDate.getFestivals()
获得节日
cn.hutool.core.date.ChineseDate.getChineseZodiac()
获得年份生肖
cn.hutool.core.date.ChineseDate.getCyclical()
获得年的天干地支
cn.hutool.core.date.ChineseDate.getCyclicalYMD()
干支纪年信息
cn.hutool.core.date.ChineseDate.getTerm()
获得节气
cn.hutool.core.date.ChineseDate.toStringNormal()
转换为标准的日期格式来表示农历日期,例如2020-01-13
cn.hutool.core.date.ChineseDate.toString()

LocalDateTimeUtil(JDK8+中的LocalDateTime 工具类封装)

方法 描述
cn.hutool.core.date.LocalDateTimeUtil.now()
当前时间,默认时区
cn.hutool.core.date.LocalDateTimeUtil.of(java.time.Instant)
{@link Instant}转{@link LocalDateTime},使用默认时区
cn.hutool.core.date.LocalDateTimeUtil.ofUTC(java.time.Instant)
{@link Instant}转{@link LocalDateTime},使用UTC时区
cn.hutool.core.date.LocalDateTimeUtil.of(java.time.ZonedDateTime)
{@link ZonedDateTime}转{@link LocalDateTime}
cn.hutool.core.date.LocalDateTimeUtil.of(java.time.Instant, java.time.ZoneId)
{@link Instant}转{@link LocalDateTime}
cn.hutool.core.date.LocalDateTimeUtil.of(java.time.Instant, java.util.TimeZone)
{@link Instant}转{@link LocalDateTime}
cn.hutool.core.date.LocalDateTimeUtil.of(long)
毫秒转{@link LocalDateTime},使用默认时区

注意:此方法使用默认时区,如果非UTC,会产生时间偏移

cn.hutool.core.date.LocalDateTimeUtil.ofUTC(long)
毫秒转{@link LocalDateTime},使用UTC时区
cn.hutool.core.date.LocalDateTimeUtil.of(long, java.time.ZoneId)
毫秒转{@link LocalDateTime},根据时区不同,结果会产生时间偏移
cn.hutool.core.date.LocalDateTimeUtil.of(long, java.util.TimeZone)
毫秒转{@link LocalDateTime},结果会产生时间偏移
cn.hutool.core.date.LocalDateTimeUtil.of(java.util.Date)
{@link Date}转{@link LocalDateTime},使用默认时区
cn.hutool.core.date.LocalDateTimeUtil.of(java.time.temporal.TemporalAccessor)
{@link TemporalAccessor}转{@link LocalDateTime},使用默认时区
cn.hutool.core.date.LocalDateTimeUtil.ofDate(java.time.temporal.TemporalAccessor)
{@link TemporalAccessor}转{@link LocalDate},使用默认时区
cn.hutool.core.date.LocalDateTimeUtil.parse(java.lang.CharSequence)
解析日期时间字符串为{@link LocalDateTime},仅支持yyyy-MM-dd’T’HH:mm:ss格式,例如:2007-12-03T10:15:30
cn.hutool.core.date.LocalDateTimeUtil.parse(java.lang.CharSequence, java.time.format.DateTimeFormatter)
解析日期时间字符串为{@link LocalDateTime},格式支持日期时间、日期、时间
cn.hutool.core.date.LocalDateTimeUtil.parse(java.lang.CharSequence, java.lang.String)
解析日期时间字符串为{@link LocalDateTime}
cn.hutool.core.date.LocalDateTimeUtil.parseDate(java.lang.CharSequence)
解析日期时间字符串为{@link LocalDate},仅支持yyyy-MM-dd’T’HH:mm:ss格式,例如:2007-12-03T10:15:30
cn.hutool.core.date.LocalDateTimeUtil.parseDate(java.lang.CharSequence, java.time.format.DateTimeFormatter)
解析日期时间字符串为{@link LocalDate},格式支持日期
cn.hutool.core.date.LocalDateTimeUtil.parseDate(java.lang.CharSequence, java.lang.String)
解析日期字符串为{@link LocalDate}
cn.hutool.core.date.LocalDateTimeUtil.formatNormal(java.time.LocalDateTime)
格式化日期时间为yyyy-MM-dd HH:mm:ss格式
cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDateTime, java.time.format.DateTimeFormatter)
格式化日期时间为指定格式
cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDateTime, java.lang.String)
格式化日期时间为指定格式
cn.hutool.core.date.LocalDateTimeUtil.formatNormal(java.time.LocalDate)
格式化日期时间为yyyy-MM-dd格式
cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDate, java.time.format.DateTimeFormatter)
格式化日期时间为指定格式
cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDate, java.lang.String)
格式化日期时间为指定格式
cn.hutool.core.date.LocalDateTimeUtil.offset(java.time.LocalDateTime, long, java.time.temporal.TemporalUnit)
日期偏移,根据field不同加不同值(偏移会修改传入的对象)
cn.hutool.core.date.LocalDateTimeUtil.between(java.time.LocalDateTime, java.time.LocalDateTime)
获取两个日期的差,如果结束时间早于开始时间,获取结果为负。

返回结果为{@link Duration}对象,通过调用toXXX方法返回相差单位

cn.hutool.core.date.LocalDateTimeUtil.between(java.time.LocalDateTime, java.time.LocalDateTime, java.time.temporal.ChronoUnit)
获取两个日期的差,如果结束时间早于开始时间,获取结果为负。

返回结果为时间差的long值

cn.hutool.core.date.LocalDateTimeUtil.betweenPeriod(java.time.LocalDate, java.time.LocalDate)
获取两个日期的表象时间差,如果结束时间早于开始时间,获取结果为负。

比如2011年2月1日,和2021年8月11日,日相差了10天,月相差6月

cn.hutool.core.date.LocalDateTimeUtil.beginOfDay(java.time.LocalDateTime)
修改为一天的开始时间,例如:2020-02-02 00:00:00,000
cn.hutool.core.date.LocalDateTimeUtil.endOfDay(java.time.LocalDateTime)
修改为一天的结束时间,例如:2020-02-02 23:59:59,999
cn.hutool.core.date.LocalDateTimeUtil.toEpochMilli(java.time.temporal.TemporalAccessor)
{@link TemporalAccessor}转换为 时间戳(从1970-01-01T00:00:00Z开始的毫秒数)

TemporalAccessorUtil{TemporalAccessor} 工具类封装

方法 描述
cn.hutool.core.date.LocalDateTimeUtil.now()
当前时间,默认时区
cn.hutool.core.date.LocalDateTimeUtil.of(java.time.Instant)
{@link Instant}转{@link LocalDateTime},使用默认时区
cn.hutool.core.date.LocalDateTimeUtil.ofUTC(java.time.Instant)
{@link Instant}转{@link LocalDateTime},使用UTC时区
cn.hutool.core.date.LocalDateTimeUtil.of(java.time.ZonedDateTime)
{@link ZonedDateTime}转{@link LocalDateTime}
cn.hutool.core.date.LocalDateTimeUtil.of(java.time.Instant, java.time.ZoneId)
{@link Instant}转{@link LocalDateTime}
cn.hutool.core.date.LocalDateTimeUtil.of(java.time.Instant, java.util.TimeZone)
{@link Instant}转{@link LocalDateTime}
cn.hutool.core.date.LocalDateTimeUtil.of(long)
毫秒转{@link LocalDateTime},使用默认时区

注意:此方法使用默认时区,如果非UTC,会产生时间偏移

cn.hutool.core.date.LocalDateTimeUtil.ofUTC(long)
毫秒转{@link LocalDateTime},使用UTC时区
cn.hutool.core.date.LocalDateTimeUtil.of(long, java.time.ZoneId)
毫秒转{@link LocalDateTime},根据时区不同,结果会产生时间偏移
cn.hutool.core.date.LocalDateTimeUtil.of(long, java.util.TimeZone)
毫秒转{@link LocalDateTime},结果会产生时间偏移
cn.hutool.core.date.LocalDateTimeUtil.of(java.util.Date)
{@link Date}转{@link LocalDateTime},使用默认时区
cn.hutool.core.date.LocalDateTimeUtil.of(java.time.temporal.TemporalAccessor)
{@link TemporalAccessor}转{@link LocalDateTime},使用默认时区
cn.hutool.core.date.LocalDateTimeUtil.ofDate(java.time.temporal.TemporalAccessor)
{@link TemporalAccessor}转{@link LocalDate},使用默认时区
cn.hutool.core.date.LocalDateTimeUtil.parse(java.lang.CharSequence)
解析日期时间字符串为{@link LocalDateTime},仅支持yyyy-MM-dd’T’HH:mm:ss格式,例如:2007-12-03T10:15:30
cn.hutool.core.date.LocalDateTimeUtil.parse(java.lang.CharSequence, java.time.format.DateTimeFormatter)
解析日期时间字符串为{@link LocalDateTime},格式支持日期时间、日期、时间
cn.hutool.core.date.LocalDateTimeUtil.parse(java.lang.CharSequence, java.lang.String)
解析日期时间字符串为{@link LocalDateTime}
cn.hutool.core.date.LocalDateTimeUtil.parseDate(java.lang.CharSequence)
解析日期时间字符串为{@link LocalDate},仅支持yyyy-MM-dd’T’HH:mm:ss格式,例如:2007-12-03T10:15:30
cn.hutool.core.date.LocalDateTimeUtil.parseDate(java.lang.CharSequence, java.time.format.DateTimeFormatter)
解析日期时间字符串为{@link LocalDate},格式支持日期
cn.hutool.core.date.LocalDateTimeUtil.parseDate(java.lang.CharSequence, java.lang.String)
解析日期字符串为{@link LocalDate}
cn.hutool.core.date.LocalDateTimeUtil.formatNormal(java.time.LocalDateTime)
格式化日期时间为yyyy-MM-dd HH:mm:ss格式
cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDateTime, java.time.format.DateTimeFormatter)
格式化日期时间为指定格式
cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDateTime, java.lang.String)
格式化日期时间为指定格式
cn.hutool.core.date.LocalDateTimeUtil.formatNormal(java.time.LocalDate)
格式化日期时间为yyyy-MM-dd格式
cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDate, java.time.format.DateTimeFormatter)
格式化日期时间为指定格式
cn.hutool.core.date.LocalDateTimeUtil.format(java.time.LocalDate, java.lang.String)
格式化日期时间为指定格式
cn.hutool.core.date.LocalDateTimeUtil.offset(java.time.LocalDateTime, long, java.time.temporal.TemporalUnit)
日期偏移,根据field不同加不同值(偏移会修改传入的对象)
cn.hutool.core.date.LocalDateTimeUtil.between(java.time.LocalDateTime, java.time.LocalDateTime)
获取两个日期的差,如果结束时间早于开始时间,获取结果为负。

返回结果为{@link Duration}对象,通过调用toXXX方法返回相差单位

cn.hutool.core.date.LocalDateTimeUtil.between(java.time.LocalDateTime, java.time.LocalDateTime, java.time.temporal.ChronoUnit)
获取两个日期的差,如果结束时间早于开始时间,获取结果为负。

返回结果为时间差的long值

cn.hutool.core.date.LocalDateTimeUtil.betweenPeriod(java.time.LocalDate, java.time.LocalDate)
获取两个日期的表象时间差,如果结束时间早于开始时间,获取结果为负。

比如2011年2月1日,和2021年8月11日,日相差了10天,月相差6月

cn.hutool.core.date.LocalDateTimeUtil.beginOfDay(java.time.LocalDateTime)
修改为一天的开始时间,例如:2020-02-02 00:00:00,000
cn.hutool.core.date.LocalDateTimeUtil.endOfDay(java.time.LocalDateTime)
修改为一天的结束时间,例如:2020-02-02 23:59:59,999
cn.hutool.core.date.LocalDateTimeUtil.toEpochMilli(java.time.temporal.TemporalAccessor)
{@link TemporalAccessor}转换为 时间戳(从1970-01-01T00:00:00Z开始的毫秒数)

转换

Date、long、Calendar之间的相互转换
//当前时间
Date date = DateUtil.date();
//当前时间
Date date2 = DateUtil.date(Calendar.getInstance());
//当前时间
Date date3 = DateUtil.date(System.currentTimeMillis());
//当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
String now = DateUtil.now();
//当前日期字符串,格式:yyyy-MM-dd
String today= DateUtil.today();

日期时间对象-DateTime

由来
考虑工具类的局限性,在某些情况下使用并不简便,于是DateTime类诞生。DateTime对象充分吸取Joda-Time库的优点,并提供更多的便捷方法,这样我们在开发时不必再单独导入Joda-Time库便可以享受简单快速的日期时间处理过程。

说明

DateTime类继承于java.util.Date类,为Date类扩展了众多简便方法,这些方法多是DateUtil静态方法的对象表现形式,使用DateTime对象可以完全替代开发中Date对象的使用。

使用

新建对象
DateTime对象包含众多的构造方法,构造方法支持的参数有:

Date
Calendar
String(日期字符串,第二个参数是日期格式)
long 毫秒数
构建对象有两种方式:DateTime.of()和new DateTime():

Date date = new Date();

//new方式创建
DateTime time = new DateTime(date);
Console.log(time);

//of方式创建
DateTime now = DateTime.now();
DateTime dt = DateTime.of(date);
使用对象
DateTime的成员方法与DateUtil中的静态方法所对应,因为是成员方法,因此可以使用更少的参数操作日期时间。

示例:获取日期成员(年、月、日等)

DateTime dateTime = new DateTime(“2017-01-05 12:34:23”, DatePattern.NORM_DATETIME_FORMAT);

//年,结果:2017
int year = dateTime.year();

//季度(非季节),结果:Season.SPRING
Season season = dateTime.seasonEnum();

//月份,结果:Month.JANUARY
Month month = dateTime.monthEnum();

//日,结果:5
int day = dateTime.dayOfMonth();
更多成员方法请参阅API文档。

对象的可变性
DateTime对象默认是可变对象(调用offset、setField、setTime方法默认变更自身),但是这种可变性有时候会引起很多问题(例如多个地方共用DateTime对象)。我们可以调用setMutable(false)方法使其变为不可变对象。在不可变模式下,offset、setField方法返回一个新对象,setTime方法抛出异常。

DateTime dateTime = new DateTime(“2017-01-05 12:34:23”, DatePattern.NORM_DATETIME_FORMAT);

//默认情况下DateTime为可变对象,此时offsite == dateTime
DateTime offsite = dateTime.offsite(DateField.YEAR, 0);

//设置为不可变对象后变动将返回新对象,此时offsite != dateTime
dateTime.setMutable(false);
offsite = dateTime.offsite(DateField.YEAR, 0);
格式化为字符串
调用toString()方法即可返回格式为yyyy-MM-dd HH:mm:ss的字符串,调用toString(String format)可以返回指定格式的字符串。

DateTime dateTime = new DateTime(“2017-01-05 12:34:23”, DatePattern.NORM_DATETIME_FORMAT);
//结果:2017-01-05 12:34:23
String dateStr = dateTime.toString();

//结果:2017/01/05文章来源地址https://www.toymoban.com/news/detail-436458.html

到了这里,关于Hutool 常用工具类介绍-DateUtil的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hutool中那些常用的工具类和实用方法

    灵魂拷问1:还在为新项目工具类搬迁而烦恼? 灵魂拷问2:还在为项目中工具类维护而烦恼? **Hutool** 它是一个Java工具集类库,包含了很多静态方法的封装:流处理、时间日期处理、正则处理、加解密处理、文件处理、集合处理等,可以说是项目中几乎所有XxxxUtil的替代品,

    2024年02月08日
    浏览(43)
  • Hutool.DateUtil时间工具方法解析

    1.依赖引入: dependency         groupIdcn.hutool/groupId         artifactIdhutool-core/artifactId         version5.6.5/version /dependency 2.方法解析: parse可以识别到一些时间的常用格式: /*yyyy-MM-dd HH:mm:ss yyyy-MM-dd HH:mm:ss yyyy-MM-dd HH:mm yyyy-MM-dd HH:mm:ss SSS*/  1字符串与日期(Date)的相互转换: DateUt

    2024年02月06日
    浏览(41)
  • MySQL管理常用工具介绍

    该mysql不是指mysql服务,而是指mysql的客户端工具。  -e选项可以在Mysql客户端执行SQL语句,而不用连接到MySQL数据库再执行,对于一些批处理脚本, 这种方式尤其方便。 示例:     mysqladmin 是一个执行管理操作的客户端程序。可以用它来检查服务器的配置和当前状态、创建并

    2024年02月04日
    浏览(38)
  • kali linux入门及常用简单工具介绍

    目录 前言 一、kali linux是什么? 二、安装下载kali 三、kali常见工具介绍 1.nmap 2.sqlmap 3.hydra 4.netcat 总结 相信很多同学了解到和学习网络安全的时候都听过 kali 系统,大家都称之为黑客最喜爱的系统,那么什么是kali,初学者用kali能做些什么,我将在本文中做简单的介绍 Kali L

    2024年02月08日
    浏览(47)
  • Linux:常用软件、工具和周边知识介绍

    上次也是结束了权限相关的知识:Linux:权限相关知识详解 Yum(Yellowdog Updater Modified): Yum是Linux系统中用于管理软件包的工具, 类似于手机上的应用商店 。是 基于 RPM(Red Hat Package Manager)的系统 ,用于管理 RPM 软件包 ,它提供了一种方便的方式来搜索、下载、安装和卸载

    2024年04月25日
    浏览(38)
  • AI视频成工具D-ID介绍(AI数字人常用工具)

    Studio D-id,​一个AI视频成工具,用AI创作的数字人,输入人物就可一键生成人物,上传要说的文本或音频则可以开口说话了。 关于AI语音,有很多选项可供选择。目前,Studio D-id支持多达66种语言。然后,您可以使用普通话,广东话,法语、西班牙语、印地语等创建出色

    2024年02月07日
    浏览(51)
  • docker——监控以及常用监控工具介绍和docker部署

    在公司的时候,监控类的还是接触的比较多。基本上就是grafana + datasource(prometheus、pg、es) + 告警规则 下面简单介绍一些监控维度以及几种数据源工具和grafana使用(全部以docker部署,方便学习) 监控维度 在主机上运⾏的容器是监控的重中之重。作为应⽤的直接载体,使⽤者需

    2024年01月24日
    浏览(36)
  • 抓包工具Charles(四)-常用功能介绍(保存、导入导出、过滤、排序)

    Charles是常见的抓包工具之一 本篇介绍Charles的常用功能保存、导入导出、过滤、排序接口

    2024年02月13日
    浏览(39)
  • [自动化运维工具] Ansible的简单介绍与常用模块详解

    自动化运维工具,也叫 机器管理工具 。 可以实现 批量管理多台(成百上千)主机 ,是应用级别的 跨主机编排工具 。 无客户端agent存在,不需要在被控制的节点上安装额外的客户端应用 通过 ssh协议 与被控制节点通信 基于模块工作的,可以通过模块实现在被控制节点上执

    2024年02月05日
    浏览(81)
  • Github Copilot 的补强工具Github Copilot Labs的常用功能介绍

    一、什么是Github Copilot Labs Github Copilot Labs是由 GitHub 推出的一款基于人工智能技术的代码协作工具,旨在协助开发者更加快速、高效地编写代码。该工具使用了机器学习技术,通过学习大量的开源代码和编写实践,提供了对于代码变量、函数、类的自动补全和提示,甚至可以

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包