ТЛ; др
LocalDate.of( 2011 , Month.JULY , 3 )
.minusWeeks( 1 )
2011-06-26
java.time
Вопрос и ответы используют старые устаревшие классы даты и времени. Вместо этого используйте классы java.time.
LocalDate
Класс LocalDate
представляет значение только для даты без времени суток и без часового пояса.
LocalDate localDate = LocalDate.of( 2011 , Month.JULY , 3 );
Либо передайте целое число во втором аргументе вместо перечисления Month
. Пропуск 1-12 для января-декабря.
Предыдущая неделя
Вы можете вычесть неделю из даты.
LocalDate weekPrior = localDate.minusWeeks( 1 );
См. код, запущенный в режиме реального времени на IdeOne.com .
Предыдущий день недели
Если вы хотите определенный день недели, используйте TemporalAdjuster
.
Несколько таких удобных реализаций, предусмотренных в классе TemporalAdjusters
(обратите внимание на множественное число ').
LocalDate priorTuesday = localDate.with( TemporalAdjusters.previous( DayOfWeek.TUESDAY ) ) ;
О java.time
Инфраструктура java.time встроена в Java 8 и более поздние версии. Эти классы вытесняют старые классные устаревшие классы даты и времени, такие как java.util.Date
, Calendar
и & SimpleDateFormat
.
Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на классы java.time .
Чтобы узнать больше, см. Oracle Tutorial . И поиск переполнения стека для многих примеров и объяснений. Спецификация JSR 310 .
Где получить классы java.time?
Проект ThreeTen-Extra расширяет java.time дополнительными классами. Этот проект является полигоном для возможных будущих дополнений к java.time. Здесь вы можете найти некоторые полезные классы, такие как Interval
, YearWeek
, YearQuarter
и more .