Joda-Time 提供了 Java 日期和時間類別的優質替代品。該設計允許使用多個日曆系統,同時仍提供簡單的 API。 「預設」日曆是 XML 使用的 ISO8601 標準。格里高利體系、儒略體系、佛教體系、科普特體系、衣索比亞體系和伊斯蘭教體係也包括在內。支援的類別包括時區、持續時間、格式和解析。
除了保持時區資料最新之外,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 >
梯度配置:
compile ' joda-time:joda-time:2.13.0 '
GitHub上的相關專案:
其他相關項目:
作為 Tidelift 訂閱的一部分提供。
Joda 和數千個其他軟體包的維護者正在與 Tidelift 合作,提供一項企業訂閱,涵蓋您使用的所有開源軟體。
如果您想要開源的靈活性和商業級軟體的信心,那麼這就是適合您的。
了解更多
請使用 Stack Overflow 來解答一般使用問題。當您想協助推進專案時,應該使用 GitHub 問題和拉取請求。
任何支持該項目的捐款均透過 OpenCollective 接受。
若要報告安全漏洞,請使用 Tidelift 安全聯絡人。 Tidelift 將協調修復和揭露。
Joda-Time 是使用標準 GitHub 工具開發的。 checkstyle 檔案可用,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=""