【问题标题】:Getting the week number for a date (week starting on Wednesday)获取日期的星期数(从星期三开始的星期)
【发布时间】:2018-07-29 08:49:25
【问题描述】:
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 的结果,我在这里缺少什么?

【问题讨论】:

    标签: java java-8 week-number


    【解决方案1】:

    如果您期望输出符合ISO-8601,其中current weekweek 30,您需要遵循以下步骤:

    根据 ISO-8601 标准的周数,从星期一开始的周数。一年中的第一周是包含该年第一个星期四的那一周(='First 4-day week')。

    这是由WeekFields.ISO实现的。

    如果您希望一周从 WEDNESDAY 开始,您只需将 minimalDaysInFirstWeek1 更改为 4(='第一个 4 天周'):

    LocalDate date = LocalDate.now();
    WeekFields weekFields = WeekFields.of(DayOfWeek.WEDNESDAY, 4);
    int weekNo = date.get(weekFields.weekOfWeekBasedYear());
    System.out.println("Week No " + weekNo);
    

    【讨论】:

      猜你喜欢
      • 2018-02-05
      • 2020-01-09
      • 2017-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-12
      • 2021-12-01
      相关资源
      最近更新 更多