Joda-Time bietet einen hochwertigen Ersatz für die Java-Datums- und Zeitklassen. Das Design ermöglicht mehrere Kalendersysteme und bietet dennoch eine einfache API. Der „Standard“-Kalender ist der ISO8601-Standard, der von XML verwendet wird. Dazu gehören auch das gregorianische, julianische, buddhistische, koptische, äthiopische und islamische System. Zu den unterstützenden Klassen gehören Zeitzone, Dauer, Format und Analyse.
Joda-time befindet sich nicht mehr in der aktiven Entwicklung, außer um die Zeitzonendaten auf dem neuesten Stand zu halten. Ab Java SE 8 werden Benutzer aufgefordert, auf java.time
(JSR-310) zu migrieren – einen Kernbestandteil des JDK, der dieses Projekt ersetzt. Für Android-Benutzer wird java.time
in API 26+ hinzugefügt. Projekte, die niedrigere API-Ebenen unterstützen müssen, können die ThreeTenABP-Bibliothek verwenden.
Als Vorgeschmack auf Joda-Time finden Sie hier einige Beispielcodes:
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 ist unter der geschäftsfreundlichen Apache 2.0-Lizenz lizenziert.
Es stehen verschiedene Dokumentationen zur Verfügung:
Version 2.13.0 ist die aktuell neueste Version. Diese Version gilt als stabil und verdient das 2.x-Tag. Dies hängt von JDK 1.5 oder höher ab.
Verfügbar im Maven Central-Repository
Maven-Konfiguration:
< dependency >
< groupId >joda-time</ groupId >
< artifactId >joda-time</ artifactId >
< version >2.13.0</ version >
</ dependency >
Gradle-Konfiguration:
compile ' joda-time:joda-time:2.13.0 '
Verwandte Projekte bei GitHub:
Weitere verwandte Projekte:
Verfügbar als Teil des Tidelift-Abonnements.
Joda und die Betreuer Tausender anderer Pakete arbeiten mit Tidelift zusammen, um ein Unternehmensabonnement bereitzustellen, das alle von Ihnen verwendeten Open Source abdeckt.
Wenn Sie die Flexibilität von Open Source und das Vertrauen kommerzieller Software wünschen, ist dies das Richtige für Sie.
Erfahren Sie mehr
Bitte verwenden Sie Stack Overflow für allgemeine Fragen zur Verwendung. GitHub-Probleme und Pull-Requests sollten verwendet werden, wenn Sie das Projekt vorantreiben möchten.
Alle Spenden zur Unterstützung des Projekts werden über OpenCollective entgegengenommen.
Um eine Sicherheitslücke zu melden, wenden Sie sich bitte an den Sicherheitskontakt von Tidelift. Tidelift wird die Behebung und Offenlegung koordinieren.
Joda-Time wird mit Standard-GitHub-Tools entwickelt. Es steht eine Checkstyle-Datei zur Verfügung, die von PRs eingehalten werden muss. Das Projekt kann mit Apache Maven erstellt werden, beispielsweise mit mvn clean install
. Die kontinuierliche Integration erfolgt mithilfe von GitHub Actions. Unit-Tests werden in JUnit geschrieben und als Teil des Builds und der kontinuierlichen Integration ausgeführt. Änderungen über PR müssen eine entsprechende Testabdeckung beinhalten.
Beachten Sie, dass Joda-Time als weitgehend „abgeschlossenes“ Projekt gilt. Es sind keine größeren Verbesserungen geplant. Wenn Sie Java SE 8 verwenden, migrieren Sie bitte auf java.time (JSR-310).
mvn clean deploy -Doss.repo -Dgpg.passphrase=""