【工具类】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()
,可先用变量保存当前日期。
好了,今天分享到这里。希望你喜欢这次的探索之旅!不要忘记 “点赞” 和 “关注” 哦,我们下次见!🎈
本文完结!
祝各位大佬和小伙伴身体健康,万事如意,发财暴富,扫下方二维码与我一起交流!!!