Joda-Time fornece um substituto de qualidade para as classes de data e hora Java. O design permite vários sistemas de calendário, ao mesmo tempo que fornece uma API simples. O calendário 'padrão' é o padrão ISO8601 usado pelo XML. Os sistemas gregoriano, juliano, budista, copta, etíope e islâmico também estão incluídos. As classes de suporte incluem fuso horário, duração, formato e análise.
Joda-time não está mais em desenvolvimento ativo, exceto para manter os dados de fuso horário atualizados. Do Java SE 8 em diante, os usuários são solicitados a migrar para java.time
(JSR-310) – uma parte central do JDK que substitui este projeto. Para usuários do Android, java.time
é adicionado na API 26+. Projetos que precisam oferecer suporte a níveis mais baixos de API podem usar a biblioteca ThreeTenABP.
Como uma amostra do Joda-Time, aqui estão alguns exemplos de código:
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 é licenciado sob a licença Apache 2.0 para negócios.
Diversas documentações estão disponíveis:
A versão 2.13.0 é a versão mais recente. Esta versão é considerada estável e digna da etiqueta 2.x. Depende do JDK 1.5 ou posterior.
Disponível no repositório Maven Central
Configuração do Maven:
< dependency >
< groupId >joda-time</ groupId >
< artifactId >joda-time</ artifactId >
< version >2.13.0</ version >
</ dependency >
Configuração do Gradle:
compile ' joda-time:joda-time:2.13.0 '
Projetos relacionados no GitHub:
Outros projetos relacionados:
Disponível como parte da assinatura Tidelift.
Joda e os mantenedores de milhares de outros pacotes estão trabalhando com o Tidelift para fornecer uma assinatura empresarial que cubra todo o código aberto que você usa.
Se você deseja a flexibilidade do código aberto e a confiança do software de nível comercial, isto é para você.
Saber mais
Use Stack Overflow para questões gerais de uso. Problemas do GitHub e solicitações pull devem ser usados quando você quiser ajudar no avanço do projeto.
Quaisquer doações para apoiar o projeto são aceitas via OpenCollective.
Para relatar uma vulnerabilidade de segurança, use o contato de segurança da Tidelift. A Tidelift coordenará a correção e divulgação.
Joda-Time é desenvolvido usando ferramentas padrão do GitHub. Um arquivo checkstyle está disponível e os PRs devem cumpri-lo. O projeto pode ser construído usando Apache Maven, como mvn clean install
. A integração contínua ocorre usando GitHub Actions. Os testes unitários são escritos em JUnit e executados como parte da construção e integração contínua. As alterações via PR devem incluir cobertura de teste apropriada.
Observe que Joda-Time é considerado um projeto praticamente “terminado”. Não há grandes melhorias planejadas. Se estiver usando Java SE 8, migre para java.time (JSR-310).
mvn clean deploy -Doss.repo -Dgpg.passphrase=""