1 回答

TA貢獻(xiàn)1796條經(jīng)驗 獲得超7個贊
檢查 ChronoField 或 IsoFields 以獲得合適的方式來獲取您想要使用的日歷系統(tǒng)的星期。LocalDate用作“基礎(chǔ)”值的對象應(yīng)具有預(yù)期年份的周值。
int year = 2019;
int weekNumber = 1;
LocalDate localDate = LocalDate.of(year, 2, 1)
.with(IsoFields.WEEK_OF_WEEK_BASED_YEAR, weekNumber)
.with(ChronoField.DAY_OF_WEEK, DayOfWeek.SUNDAY.getValue());
選擇第一個日期是有意義的。使用LocalDate.of(year, 1, 1)將給出可以屬于上一年最后一周的一天,同樣適用,LocalDate.now()但僅限于給定的時間段。
LocalDate.of(2017, 1, 1)
.with(IsoFields.WEEK_OF_WEEK_BASED_YEAR, 26)
.with(ChronoField.DAY_OF_WEEK, DayOfWeek.SUNDAY.getValue());
// 2016-07-03
LocalDate.of(2017, 1, 1).get(IsoFields.WEEK_OF_WEEK_BASED_YEAR);
// 52
因此,從第 52 周跳到第 26 周將給出日期 2016-07-03,因為日期是通過第 52 周和第 26 周之間的子跟蹤時間計算的。
添加回答
舉報