How to calculate Date from ISO8601 week number in Java

后端 未结 3 1844
萌比男神i
萌比男神i 2020-12-01 21:54

Is there any way of doing this: How to get dates of a week (I know week number)? for ISO 8601 week number without using any library or calender in Java?

3条回答
  •  一生所求
    2020-12-01 22:54

    The Java 8 / java.time way

    In Java 8, you can use TemporalField combined with LocalDate::with(TemporalField, long) method for getting the week of the week based year and TemporalAdjuster combined with LocalDate::with(TemporalAdjuster) method to jump to required day of week, like this:

    final int weekNumber = 34;
    LocalDate weekByNumber = date.with(IsoFields.WEEK_OF_WEEK_BASED_YEAR, weekNumber);
    
    final TemporalAdjuster adjuster = TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY);
    LocalDate mondayOfWeekByNumber = weekByNumber.with(adjuster);
    

提交回复
热议问题