tl; др
Использование YearQuarter
класс от ThreeTen-Extra .
YearQuarter // A class available in the ThreeTen-Extra library.
.from( // Factory method rather than calling `new`.
LocalDate.of( 2020 , Month.SEPTEMBER , 30 ) // Returns a `LocalDate` object, represent a date-only value without a time-of-day and without a time zone.
) // Returns a `YearQuarter` object.
.plusQuarters( 1 ) // Perform date-math, resulting in a new `YearQuarter` object (per immutable objects pattern).
.atEndOfQuarter() // Determine the date of last day of this year-quarter.
.toString() // Generate text in standard ISO 8601 format.
2020-12-31
org.threeten.extra.YearQuarter
Библиотека ThreeTen-Extra предоставляет классы, расширяющие функциональные возможности java .time классы, встроенные в Java 8 и более поздние версии. Один из его классов YearQuarter
представляет определенный c квартал в конкретный c год. Кварталы определяются календарным годом: январь-март, апрель-июнь, июль-сентябрь, октябрь-декабрь c.
LocalDate localDate = LocalDate.of( 2020 , Month.SEPTEMBER , 30 ) ;
YearQuarter yearQuarter = YearQuarter.from( localDate ) ;
Перейдите к следующему кварталу, добавив один квартал к нашему текущему кварталу.
Классы java .time и ThreeTen-Extra используют неизменяемые объекты. Поэтому вместо того, чтобы изменять ("изменять") исходный объект, при добавлении мы создаем новый объект.
YearQuarter followingYearQuarter = yearQuarter.plusQuarters( 1 ) ;
Определите последний день этого квартала.
LocalDate lastDateOfFollowingYearQuarter = followingYearQuarter.atEndOfQuarter() ;
О java .time
Фреймворк java .time встроен в Java 8 и более поздние версии. Эти классы вытесняют проблемные старые устаревшие классы даты и времени, такие как java.util.Date
, Calendar
, & SimpleDateFormat
.
Чтобы узнать больше, см. Учебник Oracle . И поиск переполнения стека для многих примеров и объяснений. Спецификация: JSR 310 .
Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на java .time классов.
Вы можете обмениваться java .time объектами напрямую с вашей базой данных. Используйте драйвер JDB C , совместимый с JDB C 4.2 или более поздней версией. Нет необходимости в строках, нет необходимости в java.sql.*
классах.
Где взять классы java .time?
ThreeTen-Extra Проект расширяет java .time дополнительными классами. Этот проект является полигоном для возможных будущих дополнений к java .time. Здесь вы можете найти несколько полезных классов, таких как Interval
, YearWeek
, YearQuarter
и more .