当前位置: 首页 > article >正文

【工具类】Java的 LocalDate 获取本月第一天和最后一天

博主介绍:✌全网粉丝22W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌

技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。

感兴趣的可以先关注收藏起来,在工作中、生活上等遇到相关问题都可以给我留言咨询,希望帮助更多的人。

Java的 LocalDate 获取本月第一天和最后一天

  • 一、方法1:使用 TemporalAdjusters(推荐)
  • 二、方法2:手动设置日期
  • 三、总结

在Java中,使用 LocalDate获取本月的第一天和最后一天可以通过以下两种方法实现:

一、方法1:使用 TemporalAdjusters(推荐)

import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;

public class Main {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        
        // 获取本月第一天
        LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
        System.out.println("本月第一天: " + firstDayOfMonth);
        
        // 获取本月最后一天
        LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());
        System.out.println("本月最后一天: " + lastDayOfMonth);
    }
}

优点:

  • 代码简洁直观,直接表达意图。
  • 自动处理不同月份的天数(如2月闰年问题)。

二、方法2:手动设置日期

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        
        // 获取本月第一天
        LocalDate firstDayOfMonth = today.withDayOfMonth(1);
        System.out.println("本月第一天: " + firstDayOfMonth);
        
        // 获取本月最后一天
        LocalDate lastDayOfMonth = today.withDayOfMonth(today.lengthOfMonth());
        System.out.println("本月最后一天: " + lastDayOfMonth);
    }
}

注意:

  • lengthOfMonth() 返回当前月份的天数,确保最后一天正确。
  • 避免多次调用 LocalDate.now(),防止跨月问题(如代码执行时刚好月末切换)。

三、总结

推荐使用 TemporalAdjusters,代码更清晰且符合Java日期API设计。

如果追求性能或避免多次调用 now(),可先用变量保存当前日期。


好了,今天分享到这里。希望你喜欢这次的探索之旅!不要忘记 “点赞” 和 “关注” 哦,我们下次见!🎈

本文完结!

祝各位大佬和小伙伴身体健康,万事如意,发财暴富,扫下方二维码与我一起交流!!!在这里插入图片描述


http://www.kler.cn/a/592775.html

相关文章:

  • 鸿蒙NEXT项目实战-百得知识库04
  • 网络爬虫【爬虫库request】
  • Rust学习之实现命令行小工具minigrep(一)
  • 关于HAL库的知识1----MSP函数
  • [解决] PDF转图片,中文乱码或显示方框的解决方案
  • 华为ipd流程华为流程体系管理华为数字化转型流程数字化管理解决方案介绍81页精品PPT
  • gralloc usage flags
  • dns实现主服务器
  • 如何解析返回的商品信息?
  • 深度解析扣减系统设计:从架构到实践
  • HAL库编程知识点---Can.c和Driver_can.c分层开发
  • 【论文阅读】Availability Attacks Create Shortcuts
  • Noe.js 原生 http 模块 vs Express 框架对比
  • c语言基础编程入门练习题
  • 蓝桥杯2023年第十四届省赛真题-子矩阵
  • 基于springboot医疗平台系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 麒麟V10 arm cpu aarch64 下编译 RocketMQ-Client-CPP 2.2.0
  • Oracle 19c更换undo表空间操作步骤
  • TCP、UDP协议的应用、ServerSocket和Socket、DatagramSocket和DatagramPacket
  • 2025年PHP框架推荐及对比