Никогда не следует использовать устаревшие java.util.Date
и java.util.Calendar
, если вы можете избежать их, это одна из многих причин.
Объект ZonedDateTime
предоставляет способ получить это:
instant.atZone(ZoneId.of("UTC")).get(IsoFields.WEEK_OF_WEEK_BASED_YEAR)
РЕДАКТИРОВАТЬ: предыдущая версия этого ответа использовала системное время по умолчанию, а также ChronoUnit.ALIGNED_WEEK_OF_YEAR
.Считается, что 1-7 января является «неделей 1» года, независимо от того, какой день недели 1 января находится в определенном году.Тем не менее, он будет основан на части даты ZonedDateTime
.