❤️作者主页:IT技术分享社区
❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。
❤️荣誉: CSDN博客专家、数据库优质创作者🏆,华为云享专家🏆,阿里云专家博主🏆
❤️个人博客:IT技术分享社区
❤️公众号/小程序:IT技术分享社区
❤️好文章点赞 👍 收藏 ⭐再看,养成习惯
目录
1、pom.xml 导入依赖包
2、新建测试DateUtilDemo.java测试类

今天给大家分享Hutool类库中的DateUtil用法总结,希望对大家能有所帮助。
cn.hutool hutool-all 5.8.0 基本包含了常见的日期用法比如字符串转日期、日期转字符串、获取当月的最后一天等等案例。
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:ssString now = DateUtil.now();// 获取当前日期字符串 格式为 yyyy-MM-ddString nowStr = DateUtil.today();}/**
* 字符串转日期
*/private static void StringToDate() {// parseDate 转换格式为日期; parse 转换格式根据字符串内容决定是否有时间部分,推荐使用parseDate 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);}} 具体输出结果大家可以自己运行下,如有问题欢迎互相沟通交流!