天天看點

Java實戰:Hutool類庫中的DateUtil用法總結

作者:IT技術分享社群

#頭條創作挑戰賽#

Java實戰:Hutool類庫中的DateUtil用法總結

今天給大家分享Hutool類庫中的DateUtil用法總結,希望對大家能有所幫助。

1、pom.xml 導入依賴包

<dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.0</version>
        </dependency>  


           

2、建立測試DateUtilDemo.java測試類

基本包含了常見的日期用法。

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.Month;

import java.util.Calendar;
import java.util.Date;


/**
 * @author haogm
 * @ClassName DateUtil
 * @description: TODO
 * @datetime 2023年 01月 07日 9:11
 * @version: 1.0
 */
public class DateUtilDemo {
    public static void main(String[] args) {
        GetDatePart();
        // StringToDate();
        // GetLastDay();
        // GetCurrentDate();
        GetDateStartOrEndTime();
        OtherTest();
    }

    /**
     * 通過月份枚舉獲得某個月的最後一天
     */
    private static void GetLastDay() {
        // 2月 28天  isLeapYear 閏年
        int lastDayFebLeap = Month.of(Calendar.FEBRUARY).getLastDay(true);
        // 2月 29天
        int lastDayFebNoLeap = Month.of(Calendar.FEBRUARY).getLastDay(false);
        // 8月  30天
        int lastDay = Month.of(Calendar.SEPTEMBER).getLastDay(false);
        // 1月 31天
        int lastDayJune = Month.of(Calendar.JANUARY).getLastDay(true);

        System.out.println("二月份閏年最後一天:" + lastDayFebLeap);
        System.out.println("二月份平年最後一天:" + lastDayFebNoLeap);
        System.out.println("五月份最後一天:" + lastDayJune);
        System.out.println("八月份最後一天:" + lastDay);

    }

    /**
     * 擷取目前時間的用法
     */
    private static void GetCurrentDate() {
        // 擷取目前時間的三種寫法
        Date currentDate1 = DateUtil.date();
        Date currentDate2 = DateUtil.date(Calendar.getInstance());
        Date currentDate3 = DateUtil.date(System.currentTimeMillis());
        //擷取目前時間字元串,格式:yyyy-MM-dd HH:mm:ss
        String now = DateUtil.now();
        // 擷取目前日期字元串 格式為 yyyy-MM-dd
        String nowStr = DateUtil.today();
    }

    /**
     * 字元串轉日期
     */
    private static void StringToDate() {
        // parseDate 轉換格式為日期; parse 轉換格式根據字元串内容決定是否有時間部分,推薦使用parse
        Date date = DateUtil.parseDate("2023-01-07");
        Date date2 = DateUtil.parseDate("2023/01/07");
        Date date3 = DateUtil.parseDate("2023.01.07");
        // 輸出結果隻包含日期 包含時間部分
        Date date4 = DateUtil.parse("2023-01-07 08:10");
        // 輸出結果隻包含日期 不包含時間部分
        Date date5 = DateUtil.parseDate("2023-01-07 08:10");
        // 自定義轉換格式 可以包含時間部分
        Date date6 = DateUtil.parse("2023-01-07 08:10", "yyyy-MM-dd HH:mm");
    }

    /**
     * 擷取日期中的部分内容
     */
    private static void GetDatePart() {
        Date now = DateUtil.date();
        int year = DateUtil.year(now);
        int month = DateUtil.month(now);
        int day = DateUtil.dayOfYear(now);
        // 是否是周末
        boolean weekend = DateUtil.isWeekend(now);
        // 擷取季度
        int quarter = DateUtil.quarter(now);
        // 擷取小時
        int hour = DateUtil.hour(now, true);
    }

    /**
     * 擷取某個日期的開始結束時間 針對SQL查詢用的比較多
     */
    private static void GetDateStartOrEndTime() {
        Date now = DateUtil.date();
        Date startDate = DateUtil.beginOfDay(now);
        Date endDate = DateUtil.endOfDay(now);
    }

    /**
     * 其他測試Demo
     */
    private static  void OtherTest()
    {
        // 擷取屬相
        String chineseZodiac = DateUtil.getChineseZodiac(2023);
        // "處女座"
        String zodiac = DateUtil.getZodiac(Month.SEPTEMBER.getValue(), 19);
        //是否閏年
        boolean leapYear = DateUtil.isLeapYear(2023);
    }


}