Java实战:Hutool类库中的DateUtil用法总结

news2024/11/24 2:32:21

❤️作者主页:IT技术分享社区

❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。

❤️荣誉: CSDN博客专家、数据库优质创作者🏆,华为云享专家🏆,阿里云专家博主🏆 

❤️个人博客:IT技术分享社区

❤️公众号/小程序:IT技术分享社区 

❤️好文章点赞 👍 收藏 ⭐再看,养成习惯

目录

1、pom.xml 导入依赖包

2、新建测试DateUtilDemo.java测试类


今天给大家分享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);
    }


}

具体输出结果大家可以自己运行下,如有问题欢迎互相沟通交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/154430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序 | 一比一复刻抖音短视频

&#x1f4cc;个人主页&#xff1a;个人主页 ​&#x1f9c0; 推荐专栏&#xff1a;小程序开发成神之路 --【这是一个为想要入门和进阶小程序开发专门开启的精品专栏&#xff01;从个人到商业的全套开发教程&#xff0c;实打实的干货分享&#xff0c;确定不来看看&#xff1f; …

Java中常用API总结(6)——BigInteger类

BigInteger类一、前言二、概述1.API帮助文档2.使用方法三、常见方法1.构造方法1️⃣格式2️⃣实例2.成员方法1️⃣格式2️⃣实例四、注意事项五、结语一、前言 平时在存储整数的时候&#xff0c;Java中默认是int类型&#xff0c;int类型有取值范围&#xff1a;-2147483648 ~ 2…

【深入理解JVM】内存模型

目录 运行时数据区域 程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区 运行时常量池 直接内存 虚拟机对象探秘 对象的创建 对象的内存布局 运行时数据区域 程序计数器 程序计数器是一块较小的内存空间&#xff0c;存储当前线程所执行的字节码指令的地址。在java…

C#开发的资源文件程序(可国际化) - 开源研究系列文章

上次将小软件的线程池描述了&#xff0c;也将插件程序描述了&#xff0c;这次就将里面的资源文件相关的内容进行下记录&#xff0c;这里能够让程序做成国际化的形式(即多语言程序)&#xff0c;主要就是通过这个资源文件的方式进行的处理。下面将对这个资源文件的定义进行描述&a…

多线程之waitnotify

目录&#xff1a; 前言 1.wait()方法 2 notify()方法 3.wait & notify的代码示例&#xff1a; 4.关于notifyAll()方法 前言 线程最大的问题就是抢占式执行&#xff0c;随机调度。虽然线程在操作系统内核里的调度是随机的&#xff0c;但是可以通过一些办法来控制线程…

带你了解SVG标签

✍️ 作者简介: 前端新手学习中。 &#x1f482; 作者主页: 在主页中查看更多前端教学&#xff0c;可接大学生前端作业单。 &#x1f393; 专栏分享&#xff1a;css重难点教学 Node.js教学 从头开始学习 ajax学习 js学习 目录初始SVG矩形&#xff0c;圆形和椭圆型 矩形 圆…

云安全(云安全数据中心、WAF、DDOS)

安全 安全威胁 可用性 安全威胁&#xff1a;大规模分布式拒绝服务攻击(DDoS)、僵尸网络(Botnet) 影响&#xff1a;网站业务不可用 完整性 安全威胁&#xff1a;网站入侵、服务器口令暴力破解 影响&#xff1a;网站页面被篡改和植入后门 保密性 安全威胁&#xff1a;网站后门…

二、Groovy入门

文章目录二、Groovy入门2.1 Groovy 简介2.2 Groovy 安装[非必须]2.3 IDEA创建 Groovy 项目2.4 Groovy 基本语法2.4.1 案例 1:基本注意点2.4.2 案例 2:引号说明2.4.3 案例 3:三个语句结构2.4.4 案例 4:类型及权限修饰符2.4.5 案例 5:集合操作2.4.6 案例 6:类导入2.4.7 案例 7:异…

MySQL是怎么保证主备一致的?

在前面的文章中,我不止一次地和你提到了 binlog,大家知道 binlog 可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了 binlog 就可以跟主库保持一致了呢?今天我就正式地和你介绍一下它。 毫不夸张地说,MySQL 能够成为现下最流行的开源数据库,…

pytorch torchvision.ops.roi_align

pytorch的torchvision.ops.roi_align这个算子真的是坑我好多天啊&#xff01;害我连续加班半个月&#xff01;二阶段目标检测后面用roi_align来提取特征。 接口官方说明&#xff1a;https://pytorch.org/vision/stable/generated/torchvision.ops.roi_align.html?highlightroi…

React Devtools 使用技巧

首先在扩展迷中搜索下载该扩展&#xff0c;引入到 Chrome 的扩展程序中。 当我们添加扩展到Chrome中&#xff0c;就会在浏览器中看到 React Devtools 的 Icon&#xff0c;同时通过该扩展我们就可以知道当前打开的网站是开发环境的网站还是生产环境&#xff0c;React Devtools …

Mysql 安装 ubutu20.04

Mysql 安装 1&#xff1a;sudo apt-get autoremove --purge mysql* 2&#xff1a;sudo apt-get install mysql-server 3&#xff1a;sudo apt --fix-broken install -y 4&#xff1a;sudo apt-get install mysql-server 5&#xff1a; service mysql status 5&#xff1a;sudo…

C++STL-stackqueuepriority_queue介绍

文章目录1. 容器适配器1.1 什么是适配器1.2 STL标准库中stack和queue的底层结构2. stack的介绍和使用2.1 stack的介绍2.2 stack的使用3. queue的介绍和使用3.1 queue的介绍3.2 queue的使用4. priority_queue的介绍和使用4.1 priority_queue的介绍4.2 priority_queue的使用1. 容…

年度征文 | 回顾2022,展望2023

目录 一、前言 二、回顾2022 三、展望2023 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;感谢大家一直的支持。岁末年初&#xff0c;让我们一起回顾2022展望2023。一、前言 时光荏苒&#xff0c;岁月如梭&#xff0c;2022 已和我们再见&#xff0c;2023 正向我们走来。…

云原生周刊 | 在 Grafana 中显示 K8s Service 之间的依赖关系

开源项目推荐 Caretta 这个项目可以在 Grafana 监控面板中显示 K8s Service 之间的依赖关系。底层使用的是 eBPF&#xff0c;对应用无侵入。 busuanzi 这是一个基于 Golang Redis 的简易访问量统计系统&#xff0c;可以用来替代不蒜子。 vim-online-editor 这是一个在线版…

一文读懂 Kubernetes 存储设计

在 Docker 的设计中&#xff0c;容器内的文件是临时存放的&#xff0c;并且随着容器的删除&#xff0c;容器内部的数据也会一同被清空。不过&#xff0c;我们可以通过在 docker run 启动容器时&#xff0c;使用 --volume/-v 参数来指定挂载卷&#xff0c;这样就能够将容器内部的…

企业级数据中台构建方法和指导

目录1. 数据中台的概念2. 数据中台适合企业2.1 企业构建数据中台面临的问题2.2 企业构建数据中台解决问题的方法2.3 什么样的企业适合构建数据中台3. 如何建设数据中台3.1 方法论3.1.1 OneData3.1.2 OneService3.2 技术3.3 组织4. 数据中台实现&#xff1a;指标管理5. 数据中台…

高速缓存伪共享(false sharing)

0. CPU缓存 根据摩尔定律&#xff1a;芯片中的晶体管数量每隔18个月就会翻一番。导致CPU的性能和处理速度变得越来越快&#xff0c;而提升CPU的运行速度比提升内存的运行速度要容易和便宜的多&#xff0c;所以就导致了CPU与内存之间的速度差距越来越大。 为了弥补CPU与内存之间…

错失搭档张云雷,杨九郎和郭冬临一起演小品

熟悉相声的人都知道&#xff0c;这个传统的曲艺行业&#xff0c;一般是由捧哏和逗哏组成&#xff0c;两个人相辅相成缺一不可。就拿德云社的相声演员来说&#xff0c;也产生了很多对优秀演员&#xff0c;比如说郭德纲和于谦&#xff0c;比如说岳云鹏和孙越等等。 除了这两对相声…

微信开放平台之小程序获取用户信息

说实话&#xff0c;微信开放平台的文档真的是狗屎一般的存在&#xff0c;维护不及时&#xff0c;混乱&#xff0c;每隔一段时间更新一次授权接口&#xff01;着实让开发者想口吐芬芳了&#xff01;文档内跳来跳去&#xff0c;找不到一个完整的链路&#xff01;维护好几套接口文…