Joda-Time обеспечивает качественную замену классов даты и времени Java. Дизайн позволяет использовать несколько календарных систем, сохраняя при этом простой API. Календарь «по умолчанию» соответствует стандарту ISO8601, который используется XML. Также включены григорианская, юлианская, буддийская, коптская, эфиопская и исламская системы. Поддерживаемые классы включают часовой пояс, продолжительность, формат и синтаксический анализ.
Joda-time больше не находится в активной разработке, за исключением обновления данных о часовых поясах. Начиная с Java SE 8, пользователям предлагается перейти на java.time
(JSR-310) — основную часть JDK, которая заменяет этот проект. Для пользователей Android в API 26+ добавлен java.time
. Проекты, которым необходима поддержка более низких уровней API, могут использовать библиотеку ThreeTenABP.
В качестве разновидности Joda-Time, вот пример кода:
public boolean isAfterPayDay ( DateTime datetime ) {
if ( datetime . getMonthOfYear () == 2 ) { // February is month 2!!
return datetime . getDayOfMonth () > 26 ;
}
return datetime . getDayOfMonth () > 28 ;
}
public Days daysToNewYear ( LocalDate fromDate ) {
LocalDate newYear = fromDate . plusYears ( 1 ). withDayOfYear ( 1 );
return Days . daysBetween ( fromDate , newYear );
}
public boolean isRentalOverdue ( DateTime datetimeRented ) {
Period rentalPeriod = new Period (). withDays ( 2 ). withHours ( 12 );
return datetimeRented . plus ( rentalPeriod ). isBeforeNow ();
}
public String getBirthMonthText ( LocalDate dateOfBirth ) {
return dateOfBirth . monthOfYear (). getAsText ( Locale . ENGLISH );
}
Joda-Time лицензируется по удобной для бизнеса лицензии Apache 2.0.
Доступна различная документация:
Версия 2.13.0 является последней версией. Этот выпуск считается стабильным и заслуживает тега 2.x. Это зависит от JDK 1.5 или более поздней версии.
Доступно в центральном репозитории Maven.
Конфигурация Maven:
< dependency >
< groupId >joda-time</ groupId >
< artifactId >joda-time</ artifactId >
< version >2.13.0</ version >
</ dependency >
Конфигурация Gradle:
compile ' joda-time:joda-time:2.13.0 '
Похожие проекты на GitHub:
Другие связанные проекты:
Доступно как часть подписки Tidelift.
Joda и сопровождающие тысяч других пакетов работают с Tidelift над предоставлением одной корпоративной подписки, охватывающей все используемые вами открытые исходные коды.
Если вам нужна гибкость открытого исходного кода и надежность программного обеспечения коммерческого уровня, это для вас.
Узнать больше
Пожалуйста, используйте Stack Overflow для решения общих вопросов по использованию. Проблемы GitHub и запросы на включение следует использовать, если вы хотите помочь в продвижении проекта.
Любые пожертвования на поддержку проекта принимаются через OpenCollective.
Чтобы сообщить об уязвимости безопасности, воспользуйтесь контактом службы безопасности Tidelift. Tidelift будет координировать исправление и раскрытие информации.
Joda-Time разработан с использованием стандартных инструментов GitHub. Файл контрольного стиля доступен, и PR должны его соблюдать. Проект можно собрать с помощью Apache Maven, например mvn clean install
. Непрерывная интеграция осуществляется с помощью GitHub Actions. Модульные тесты пишутся на JUnit и запускаются как часть сборки и непрерывной интеграции. Изменения посредством PR должны включать соответствующее тестовое покрытие.
Отметим, что Joda-Time считается во многом «законченным» проектом. Никаких серьезных улучшений не планируется. Если вы используете Java SE 8, перейдите на java.time (JSR-310).
mvn clean deploy -Doss.repo -Dgpg.passphrase=""