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

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 的结果,我在这里错过了什么?


茅侃侃
浏览 266回答 1
1回答

胡说叔叔

如果您根据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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java