Получить неделю. Число LocalDate (Java 8)
Я пытаюсь получить неделю номер полного LocalDate с форматом:
dd.MM.yyy
Я не нашел функцию в Java 8 Date API, которая возвращает номер недели, и я попытался создать алгоритм, но он не работал.
Ответы
Ответ 1
Одно небольшое предупреждение. Я еще не тестировал это, но, глядя на документацию API на WeekFields
и LocalDate.get
, вы должны сделать что-то вроде:
LocalDate date = ...;
// Or use a specific locale, or configure your own rules
WeekFields weekFields = WeekFields.of(Locale.getDefault());
int weekNumber = date.get(weekFields.weekOfWeekBasedYear());
Ответ 2
Ответ Марка Роттевеля почти прав и снова пример того, какой вид беспорядка существует в классе WeekFields
(аналогичные имена метода звучания, но отклоняются от интуитивного гражданского использования). Для правильного кода требуется другое поле:
LocalDate date = LocalDate.now();
TemporalField woy = WeekFields.of(Locale.getDefault()).weekOfWeekBasedYear();
int weekNumber = date.get(woy);
См. Также аналогичные дебаты по этому SO-сообщению, особенно обсуждение и комментарии по поводу ответа @kleopatra.