小编Pr0*_*ate的帖子

使用 LocalDate 获取过去的周和年

我正在使用 Java 8 时间库从今天的日期确定前几周和前一年,然后将这些值存储在地图中。我想我已经找到了正确获取周数的方法,但我不完全确定获取年份的正确方法是什么。当前代码如下:

int weeksLimit = 5; // this value is passed into the method, but just setting it here as an example
Map<Integer, Integer> yearWeeks = new HashMap<Integer, Integer>();
LocalDate ld = LocalDate.now();
WeekFields weekFields = WeekFields.of(DayOfWeek.SUNDAY, 4);
for (int i = weeksLimit; i > 0; i--) {
    LocalDate pastDate = ld.minusWeeks(i);
    yearWeeks.put(pastDate.getYear(), pastDate.get(weekFields.weekOfWeekBasedYear()));
}
Run Code Online (Sandbox Code Playgroud)

我不相信pastDate.getYear()是正确的用法。结果我想要的是:

  • 1/12/2020 - 1/18/2020 = 2020 年第 3 周
  • 1/05/2020 - 1/11/2020 = 2020 年第 2 周
  • 12/29/2019 - 1/04/2020 = …

java time week-number temporal java-8

4
推荐指数
1
解决办法
52
查看次数

标签 统计

java ×1

java-8 ×1

temporal ×1

time ×1

week-number ×1