localdate.lengthofmonth()直接返回当前日期所在月份的天数,是实例方法,需通过localdate对象调用,自动处理闰年与大小月,返回值仅取决于年份和月份。

LocalDate.lengthOfMonth() 直接返回当前日期所在月份的天数,无需额外计算。
调用方式很简单
它是一个实例方法,必须通过 LocalDate 对象调用:
- 获取当前日期当月天数:
LocalDate.now().lengthOfMonth() - 获取指定日期当月天数:
LocalDate.of(2024, 2, 15).lengthOfMonth()→ 返回 29(2024 是闰年) - 注意:传入任意日都没关系,只要年份和月份确定,结果就固定。比如
LocalDate.of(2023, 4, 30).lengthOfMonth()和LocalDate.of(2023, 4, 1).lengthOfMonth()都返回 30
它自动处理闰年和大小月
内部已封装 Gregorian 日历规则,无需手动判断:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- 2 月:平年返回 28,闰年返回 29
- 4、6、9、11 月:固定返回 30
- 1、3、5、7、8、10、12 月:固定返回 31
常见误用提醒
别把它和静态方法混淆:
- ❌ 错误写法:
LocalDate.lengthOfMonth()(编译不通过,不是静态方法) - ✅ 正确写法:
LocalDate.now().lengthOfMonth()或someLocalDate.lengthOfMonth() - 如果只有年份和月份,可用
YearMonth.of(year, month).lengthOfMonth(),效果一样且更语义化
对比其他方式
虽然也能用 TemporalAdjusters.lastDayOfMonth() 配合 getDayOfMonth() 实现,但明显更绕:
localDate.with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth()- 没必要——
lengthOfMonth()就是为此设计的标准、高效、可读性强的方案
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










