使用java.time.ZonedDateTime
,您可以获得日历周(例如第1周)。
import java.time.ZonedDateTime;
int getCalendarWeek(ZonedDateTime zonedDateTime){
int week = zonedDateTime.get ( IsoFields.WEEK_OF_WEEK_BASED_YEAR );
return week;
}
给定年份和日历周(例如:2019年和第20周),如何返回java.time.ZonedDateTime
?
日历周的第一天(星期一)是日期。无论什么时候。
ZonedDateTime getZonedDateTime(int year, int weekNumber){
// ???
}
答案 0 :(得分:3)
您可以在ZonedDateTime中使用with
操作来获取基于特定星期的日期。 WeekFields
类允许访问执行此操作所需的TemporalFields
。请参见下面的示例:
int week = 1;
int year = 2016;
WeekFields weekFields = WeekFields.of(Locale.getDefault());
ZonedDateTime ldt = ZonedDateTime.now()
.withYear(year)
.with(weekFields.weekOfYear(), week)
.with(weekFields.dayOfWeek(), 1);
请注意,这会解决时区问题,因为它假定了系统默认时区。