How do I use the Interval class of Joda Time?

This example show you how to use the org.joda.time.Interval class in Joda. An interval object represent an interval of time from one millisecond instant to another instant.

package org.kodejava.example.joda;

import org.joda.time.DateTime;
import org.joda.time.Duration;
import org.joda.time.Interval;
import org.joda.time.Months;

public class IntervalDemo {
    public static void main(String[] args) {
        DateTime startDate = new DateTime();
        DateTime endDate = startDate.plus(Months.months(2));

        //
        // Creates an interval from a start to an end instant.
        //
        Interval interval = new Interval(startDate, endDate);
        System.out.println("Interval = " + interval);
        System.out.println("Start    = " + interval.getStart());
        System.out.println("End      = " + interval.getEnd());

        //
        // Add one more month to the interval
        //
        interval = interval.withEnd(interval.getEnd().plusMonths(1));
        System.out.println("Interval = " + interval);

        //
        // Gets the duration of this time interval
        //
        Duration duration = interval.toDuration();
        System.out.println("Duration = " + duration);
    }
}

Below is the result printed by our program:

Interval = 2012-02-28T17:53:36.997/2012-04-28T17:53:36.997
Start    = 2012-02-28T17:53:36.997+08:00
End      = 2012-04-28T17:53:36.997+08:00
Interval = 2012-02-28T17:53:36.997/2012-05-28T17:53:36.997
Duration = PT7776000S
Wayan Saryada

Wayan Saryada

A programmer, runner, recreational diver, currently living in the island of Bali, Indonesia. Mostly programming in Java, creating web based application with Spring Framework, JPA, etc. If you need help on Java programming you can hire me on Fiverr.
Wayan Saryada

Leave a Reply