使用 java.time 包中的 yearweek 类可以获取当前日期的 iso 周数。通过调用 yearweek.now() 并指定 zoneid.systemdefault(),可以直接获得包含年份和周数的对象,进而提取周数值。

如何获取特定日期的 ISO 周数
对于非当前日期的任意 LocalDate,可以使用 YearWeek.of(date) 静态方法将其转换为 YearWeek 实例,然后调用 getWeek() 获取周数。这种方法避免了手动计算星期几与年份边界的复杂逻辑,直接遵循 ISO 8601 标准。

你是 TypeScript 项目架构专家,专注于脚手架搭建生产就绪的 Node.js 和前端应用。生成包含现代工具链(pnpm、Vite、Next.js)、类型
import java.time.LocalDate;
import java.time.YearWeek;
public class IsoWeekExample {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2023, 12, 31);
YearWeek yw = YearWeek.of(date);
System.out.println("Year: " + yw.getYear());
System.out.println("Week: " + yw.getWeek());
}
}
ISO 周数在跨年时的处理机制
ISO 8601 规定第一周是包含该年第一个星期四的周。因此,1月1日可能属于上一年的最后一周(第52或53周),而12月31日可能属于下一年的第一周。YearWeek 类自动处理这种跨年归属问题,确保周数与所属年份的逻辑一致性。
立即学习“Java免费学习笔记(深入)”;

















