Joda-Time provides a quality replacement for the Javadateandtime classes. The design allows for multiplecalendarsystems, while still providing a simple API.The 'default' calendar is theISO8601 standard whichis used by XML. The Gregorian, Julian, Buddhist, Coptic, Ethiopic and Islamic systemsare also included, and we welcome further additions. Supporting classes includetime zone, duration, format and parsing.
As a flavour of Joda-Time, here's some example code:
public boolean isAfterPayDay(DateTime datetime) { if (datetime.getMonthOfYear() == 2) { // February is month 2!! return datetime.getDayOfMonth() > 26; } return datetime.getDayOfMonth() > 28;}publicDays daysToNewYear(LocalDate fromDate) {LocalDate newYear = fromDate.plusYears(1).withDayOfYear(1); returnDays.daysBetween(fromDate, newYear);}public boolean isRentalOverdue(DateTime datetimeRented) {Period rentalPeriod = newPeriod().withDays(2).withHours(12); return datetimeRented.plus(rentalPeriod).isBeforeNow();}public String getBirthMonthText(LocalDate dateOfBirth) { return dateOfBirth.monthOfYear().getAsText(Locale.ENGLISH);}
Joda-Time has been created to radically change date and time handling in Java.The JDK classes Date and Calendar are very badly designed, have had numerous bugsand have odd performance effects.Here are some of our reasons for developing and using Joda-Time:
Various documentation is available:
Release 2.0is the current latest release.This release is an evolution of the 1.x codebase, not a major rewrite.It is considered stable and worthy of the 2.x tag.
Version 2.0 is almost completely source and binary compatible with version 1.x.Key changes include the use of JDK 1.5 or later, generics, and the removal of some (but not all)deprecated methods. See theupgrade notes for full detailsincluding information on the corner cases that are not compatible.Applications should be able to drop version 2.0 in place of an earlier version without any issuesproviding they are using JDK 1.5 or later and are not using one of the deprecated methods.Please let us know if a corner case hits you, especially if Joda-Time is a dependency of anotheropen source project.
We will support the 2.x product line using standard Java mechanisms.The main public API will remain backwards compatible for both source and binary in the 2.x stream.The version number will change to 3.0 to indicate a significant change in compatibility.
Release 1.6.2is the previous release.It is compatible with JDK 1.4.Given that v2.0 is essentially compatible with v1.6.2, there are no current plans for furtherreleases in the v1.x product line.
Support on bugs, library usage or enhancement requests is available via: