Joda-Time proporciona un reemplazo de calidad para las clases de fecha y hora de Java. El diseño permite múltiples sistemas de calendario y al mismo tiempo proporciona una API simple. El calendario 'predeterminado' es el estándar ISO8601 que utiliza XML. También se incluyen los sistemas gregoriano, juliano, budista, copto, etíope e islámico. Las clases de apoyo incluyen zona horaria, duración, formato y análisis.
Joda-time ya no está en desarrollo activo excepto para mantener actualizados los datos de la zona horaria. A partir de Java SE 8, se solicita a los usuarios que migren a java.time
(JSR-310), una parte central del JDK que reemplaza este proyecto. Para los usuarios de Android, java.time
se agrega en API 26+. Los proyectos que necesiten admitir niveles de API más bajos pueden utilizar la biblioteca ThreeTenABP.
Como muestra de Joda-Time, aquí hay un código de ejemplo:
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 tiene la licencia Apache 2.0, ideal para empresas.
Se encuentra disponible diversa documentación:
La versión 2.13.0 es la última versión actual. Esta versión se considera estable y digna de la etiqueta 2.x. Depende de JDK 1.5 o posterior.
Disponible en el repositorio central de Maven
Configuración de Maven:
< dependency >
< groupId >joda-time</ groupId >
< artifactId >joda-time</ artifactId >
< version >2.13.0</ version >
</ dependency >
Configuración de Gradle:
compile ' joda-time:joda-time:2.13.0 '
Proyectos relacionados en GitHub:
Otros proyectos relacionados:
Disponible como parte de la suscripción Tidelift.
Joda y los mantenedores de miles de otros paquetes están trabajando con Tidelift para ofrecer una suscripción empresarial que cubra todo el código abierto que utiliza.
Si desea la flexibilidad del código abierto y la confianza del software de calidad comercial, esto es para usted.
Más información
Utilice Stack Overflow para preguntas de uso general. Los problemas de GitHub y las solicitudes de extracción deben usarse cuando desee ayudar a avanzar en el proyecto.
Cualquier donación para apoyar el proyecto se acepta a través de OpenCollective.
Para informar una vulnerabilidad de seguridad, utilice el contacto de seguridad de Tidelift. Tidelift coordinará la solución y la divulgación.
Joda-Time se desarrolla utilizando herramientas estándar de GitHub. Hay un archivo de estilo de verificación disponible y los RP deben cumplirlo. El proyecto se puede construir usando Apache Maven, como mvn clean install
. La integración continua se lleva a cabo mediante GitHub Actions. Las pruebas unitarias se escriben en JUnit y se ejecutan como parte de la compilación y la integración continua. Los cambios vía PR deben incluir una cobertura de prueba adecuada.
Tenga en cuenta que Joda-Time se considera un proyecto en gran medida "terminado". No se planean mejoras importantes. Si utiliza Java SE 8, migre a java.time (JSR-310).
mvn clean deploy -Doss.repo -Dgpg.passphrase=""