Java 获取日期的周数(从星期三开始的一周)

Java 获取日期的周数(从星期三开始的一周),java,java-8,week-number,Java,Java 8,Week Number,我使用的是2018-07-29日期的上述代码。我期待第30周,但我得到31周 要得到30的结果,我在这里遗漏了什么?如果您预期的输出符合,则需要遵循以下步骤: 周数根据ISO-8601标准,周数从周一开始。一年的第一周是包含该年第一个星期四(“第一个4天工作周”)的一周 这是通过以下方式实现的 如果您希望本周从周三开始,则只需将第一周的最低天数从1更改为4(=“前4天工作周”): LocalDate initial = LocalDate.now(); DayOfWeek dayOfWeek =

我使用的是2018-07-29日期的上述代码。我期待第30周,但我得到31周


要得到30的结果,我在这里遗漏了什么?

如果您预期的输出符合,则需要遵循以下步骤:

周数根据ISO-8601标准,周数从周一开始。一年的第一周是包含该年第一个星期四(“第一个4天工作周”)的一周

这是通过以下方式实现的

如果您希望本周从
周三开始,则只需将
第一周的最低天数
1
更改为
4
(=“前4天工作周”):

LocalDate initial = LocalDate.now();
DayOfWeek dayOfWeek = DayOfWeek.WEDNESDAY;
WeekFields weekFields = WeekFields.of(dayOfWeek, 1);
int weekNo = date.get(weekFields.weekOfWeekBasedYear());
System.out.println("Week No"+weekNo);
LocalDate date = LocalDate.now();
WeekFields weekFields = WeekFields.of(DayOfWeek.WEDNESDAY, 4);
int weekNo = date.get(weekFields.weekOfWeekBasedYear());
System.out.println("Week No " + weekNo);