Joda-Time fournit un remplacement de qualité pour les classes de date et d'heure Java. La conception permet plusieurs systèmes de calendrier, tout en fournissant une API simple. Le calendrier « par défaut » est la norme ISO8601 utilisée par XML. Les systèmes grégorien, julien, bouddhiste, copte, éthiopien et islamique sont également inclus. Les classes prises en charge incluent le fuseau horaire, la durée, le format et l'analyse.
Joda-time n'est plus en développement actif, sauf pour maintenir les données de fuseau horaire à jour. À partir de Java SE 8, les utilisateurs sont invités à migrer vers java.time
(JSR-310) - un élément essentiel du JDK qui remplace ce projet. Pour les utilisateurs d'Android, java.time
est ajouté dans l'API 26+. Les projets devant prendre en charge des niveaux d'API inférieurs peuvent utiliser la bibliothèque ThreeTenABP.
Pour donner un aperçu de Joda-Time, voici quelques exemples de code :
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 est sous licence Apache 2.0, conviviale pour les entreprises.
Diverses documentations sont disponibles :
La version 2.13.0 est la dernière version actuelle. Cette version est considérée comme stable et digne de la balise 2.x. Cela dépend du JDK 1.5 ou version ultérieure.
Disponible dans le dépôt Maven Central
Configuration Maven :
< dependency >
< groupId >joda-time</ groupId >
< artifactId >joda-time</ artifactId >
< version >2.13.0</ version >
</ dependency >
Configuration graduée :
compile ' joda-time:joda-time:2.13.0 '
Projets associés sur GitHub :
Autres projets connexes :
Disponible dans le cadre de l’abonnement Tidelift.
Joda et les responsables de milliers d'autres packages travaillent avec Tidelift pour proposer un abonnement d'entreprise couvrant tout l'open source que vous utilisez.
Si vous recherchez la flexibilité de l'open source et la confiance d'un logiciel de qualité commerciale, ceci est fait pour vous.
Apprendre encore plus
Veuillez utiliser Stack Overflow pour les questions d'utilisation générale. Les problèmes GitHub et les demandes d'extraction doivent être utilisés lorsque vous souhaitez contribuer à faire avancer le projet.
Tous les dons pour soutenir le projet sont acceptés via OpenCollective.
Pour signaler une vulnérabilité de sécurité, veuillez utiliser le contact de sécurité Tidelift. Tidelift coordonnera le correctif et la divulgation.
Joda-Time est développé à l'aide des outils GitHub standards. Un fichier de style de contrôle est disponible et les PR doivent s'y conformer. Le projet peut être construit à l'aide d'Apache Maven, tel que mvn clean install
. L'intégration continue s'effectue à l'aide des actions GitHub. Les tests unitaires sont écrits en JUnit et exécutés dans le cadre de la construction et de l'intégration continue. Les modifications via PR doivent inclure une couverture de test appropriée.
Notez que Joda-Time est considéré comme un projet largement « terminé ». Aucune amélioration majeure n’est prévue. Si vous utilisez Java SE 8, veuillez migrer vers java.time (JSR-310).
mvn clean deploy -Doss.repo -Dgpg.passphrase=""