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

时间:2018-07-29 08:49:26

标签: java java-8 week-number

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);

我将上述代码用于2018-07-29日期。我希望第30周不会,但我会31周。

我在这里想得到30的结果是什么?

1 个答案:

答案 0 :(得分:3)

如果您希望根据ISO-8601输出,其中current weekweek 30,则需要遵循以下步骤:

  

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

这由WeekFields.ISO实现。

如果相反,您希望本周从WEDNESDAY开始,则只需将minimalDaysInFirstWeek1更改为4(=“前4天是一周'):

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