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 年 7 月 29 日使用上述代码。我预计第 30 周,但我得到 31。为了得到 30 的结果,我在这里错过了什么?
1 回答
![?](http://img1.sycdn.imooc.com/54584f9d0001219b02200220-100-100.jpg)
胡说叔叔
TA贡献1804条经验 获得超8个赞
如果您根据ISO-8601预期输出,其中当前周是第 30周,则需要遵循以下操作:
根据 ISO-8601 标准的周数,从周一开始的周数。一年中的第一周是包含该年第一个星期四的那一周(='第一个 4 天周')。
这是由WeekFields.ISO.
如果相反,您希望一周从 开始WEDNESDAY,则只需将minimalDaysInFirstWeekfrom更改1为4(='First 4-day week'):
LocalDate date = LocalDate.now();
WeekFields weekFields = WeekFields.of(DayOfWeek.WEDNESDAY, 4);
int weekNo = date.get(weekFields.weekOfWeekBasedYear());
System.out.println("Week No " + weekNo);
添加回答
举报
0/150
提交
取消