如何验证日历周是否有效?
例如:
2018年的第53周在ISO-8601日历系统中无效。 2018年只有52个日历周。
2020年第53周是有效的 - 它是从2020年12月28日到2021年1月3日。(“基于一周的第一周是标准ISO年度的第一周工作周在新的一年至少有4天“ - see IsoFields javadoc)
如何通过java.time
解决这个问题?
答案 0 :(得分:4)
使用TemporalAccessor.range(TemporalField)
:
LocalDate date = LocalDate.of(2020, 6, 1);
ValueRange range = date.range(IsoFields.WEEK_OF_WEEK_BASED_YEAR);
System.out.println(range.getMaximum()); // 53