tl; dr
На следующей неделе.
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.plusWeeks( 1L )
На прошлой неделе.
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.minusWeeks( 1L )
Использование java.time
Современный способс классами java.time, которые вытесняют старые классы, такие как Calendar
& Date
.
LocalDate
Класс LocalDate
представляет значение только для даты без времени суток и без часового пояса.
Aчасовой пояс имеет решающее значение при определении даты.В любой момент времени дата меняется по всему земному шару в зависимости от зоны.Например, через несколько минут после полуночи в Париж Франция - это новый день, в то время как "вчера" в Монреаль Квебек .
Укажите правильный часовой поясимя в формате continent/region
, например America/Montreal
, Africa/Casablanca
или Pacific/Auckland
.Никогда не используйте 3-4-буквенное сокращение, например EST
или IST
, так как они не истинные часовые пояса, не стандартизированы и даже не уникальны (!).
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
Добавить / вычесть недели
Добавить или вычесть недели с LocalDate
легко.Вызовите методы plusWeeks
или minusWeeks
.
LocalDate nextWeek = today.plusWeeks( 1L );
LocalDate lastWeek = today.minusWeeks( 1L );
О java.time
java.time Framework встроен в Java 8 и более поздние версии.Эти классы вытесняют проблемные старые устаревшие классы даты и времени, такие как java.util.Date
, Calendar
, & SimpleDateFormat
.
Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на классы java.time .
Чтобы узнать больше, см. Oracle Tutorial .И поиск переполнения стека для многих примеров и объяснений.Спецификация: JSR 310 .
Где получить классы java.time?
- Java SE 8 и SE 9 и более поздних версий
- Встроенный,
- Часть стандартного Java API с встроенной реализацией.
- Java 9 добавляет некоторые незначительные функции и исправления.
- Java SE 6 и SE 7
- Android
Проект ThreeTen-Extra расширяет java.time дополнительными классами.Этот проект является полигоном для возможных будущих дополнений к java.time.Здесь вы можете найти некоторые полезные классы, такие как Interval
, YearWeek
, YearQuarter
и more .