Joda-Time is the widely used replacement for the Java date and time classes prior to Java SE 8.
Java Other
Latest commit c61c1f3 Oct 20, 2016 @jodastephen jodastephen committed on GitHub Merge pull request #399 from jbrunton/master
Update TimeZone Database to 2016g


Joda-Time provides a quality replacement for the Java date and time classes. The design allows for multiple calendar systems, while still providing a simple API. The 'default' calendar is the ISO8601 standard which is used by XML. The Gregorian, Julian, Buddhist, Coptic, Ethiopic and Islamic systems are also included, and we welcome further additions. Supporting classes include time 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;

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);

public String getBirthMonthText(LocalDate dateOfBirth) {
  return dateOfBirth.monthOfYear().getAsText(Locale.ENGLISH);

Joda-Time is licensed under the business-friendly Apache 2.0 licence.


Various documentation is available:


Release 2.9.4 is the current latest release. This release is considered stable and worthy of the 2.x tag. It depends on JDK 1.5 or later.

Available in the Maven Central repository

Maven configuration:


Gradle configuration:

compile 'joda-time:joda-time:2.9.4'

Related projects

Related projects at GitHub:

Other related projects:


Please use GitHub issues and Pull Requests for support.


Issue tracking and active development is at GitHub. Historically, the project was at Sourceforge.