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

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

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

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

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

在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(),可先用变量保存当前日期。

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

本文完结!

祝各位大佬和小伙伴身体健康,万事如意,发财暴富,扫下方二维码与我一起交流!!!

原文链接:【工具类】Java的 LocalDate 获取本月第一天和最后一天

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容