Java时间:获取特定年份的最大周数
我只找到了Joda Time的解决方案。
仅当最后一天不在第一周时,我的解决方案才有效:
LocalDate.now() // or any other LocalDate .withDayOfMonth(31)
.withMonth(12)
.get(weekFields.weekOfWeekBasedYear())
那么在Java Time中(例如在Joda Time中)正确的方法是什么?
回答:
可使用java.time.*
API 直接获得此信息。
关键方法已rangeRefinedBy(Temporal)
启用TemporalField
。它允许您获得一个ValueRange
为字段提供最小值和最大值的对象,并通过传入的时间对象对其进行优化。
要了解一年中有多少ISO周,请执行以下操作:
LocalDate date = LocalDate.of(2015, 6, 1);long weeksInYear = IsoFields.WEEK_OF_WEEK_BASED_YEAR.rangeRefinedBy(date).getMaximum();
System.out.println(weeksInYear);
请注意,您传递的日期用于确定答案。因此,在传递1月初或12月下旬的日期时,请确保您了解基于ISO周的日历的工作原理,以及日历年与周年之间的差异。
以上是 Java时间:获取特定年份的最大周数 的全部内容, 来源链接: utcz.com/qa/425707.html