java.time:如何验证日历周

时间:2018-05-15 13:01:48

标签: java java-time

如何验证日历周是否有效?

例如:

  • 2018年的第53周在ISO-8601日历系统中无效。 2018年只有52个日历周。

  • 2020年第53周是有效的 - 它是从2020年12月28日到2021年1月3日。(“基于一周的第一周是标准ISO年度的第一周工作周在新的一年至少有4天“ - see IsoFields javadoc

如何通过java.time解决这个问题?

1 个答案:

答案 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