localdate.getdayofyear()直接返回当前日期在一年中的第几天(1–365/366),基于iso公历且不依赖时区;调用简单、结果稳定,相比calendar更安全简洁。

LocalDate.getDayOfYear() 直接返回当前日期在一年中的第几天,从 1 到 365(闰年为 366),无需额外计算。
基本用法很简单
调用 getDayOfYear() 方法即可,它属于 LocalDate 的内置方法,基于 ISO 历法(公历)计算:
- 1月1日 → 返回 1
- 12月31日平年 → 返回 365,闰年 → 返回 366
- 不依赖时区,也不受时间部分影响(
LocalDate本就不含时间)
常见使用示例
比如获取今天是一年中的第几天:
LocalDate today = LocalDate.now();
int dayOfYear = today.getDayOfYear();
System.out.println("今天是今年的第 " + dayOfYear + " 天"); // 输出类似:今天是今年的第 120 天
或者指定某一天:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
LocalDate date = LocalDate.of(2024, 3, 1); // 2024 是闰年 System.out.println(date.getDayOfYear()); // 输出 61(1月31天 + 2月29天 + 3月1日)
注意边界和异常情况
这个方法很稳定,但需注意:
- 输入的
LocalDate必须有效(如不能是 2023-02-30),否则会抛DateTimeException - 不支持 null,调用前建议判空(虽然日常构建的
LocalDate很少为 null) - 结果始终是 int 类型,范围固定,无需额外校验
和 Calendar 对比更直观
旧式 Calendar 需要设置字段再获取,容易出错:
Calendar cal = Calendar.getInstance(); cal.set(2024, Calendar.MARCH, 1); int day = cal.get(Calendar.DAY_OF_YEAR); // 同样是 61,但步骤繁琐且易错
而 LocalDate 是不可变对象,链式调用安全简洁,推荐优先使用。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










