How to add hours, minutes, seconds into DateTime in Joda Time?

In this example you’ll learn how to add some hours, minutes or seconds into the DateTime object in Joda Time. Some couple methods available to plus or minus some hours, minutes or seconds from the object, as you can see in the example below.

The DateTime object is an immutable object, which means calling one of the plus or minus method does not modified the current object. Instead, these method return a new DateTime object for each method calls.

package org.kodejava.example.joda;

import org.joda.time.DateTime;

public class TimeCalculationDemo {
    public static void main(String[] args) {
        //
        // Creates an instance of current DateTime which represents the
        // current date time.
        //
        DateTime dateTime = new DateTime();
        System.out.println("DateTime = " + dateTime);

        //
        // Plus some hours, minutes, and seconds to the original DateTime.
        //
        System.out.println("Plus 1 hour is " + dateTime.plusHours(1));
        System.out.println("Plus 10 minutes is " + dateTime.plusMinutes(10));
        System.out.println("Plus 60 seconds is " + dateTime.plusSeconds(60));

        //
        // Minus some hours, minutes, and seconds to the original DateTime.
        //
        System.out.println("Minus 1 hour is " + dateTime.minusHours(1));
        System.out.println("Minus 10 minutes is " + dateTime.minusMinutes(10));
        System.out.println("Minus 60 seconds is " + dateTime.minusSeconds(60));
    }
}

The program print the following result:

DateTime = 2012-07-27T12:08:46.048+08:00
Plus 1 hour is 2012-07-27T13:08:46.048+08:00
Plus 10 minutes is 2012-07-27T12:18:46.048+08:00
Plus 60 seconds is 2012-07-27T12:09:46.048+08:00
Minus 1 hour is 2012-07-27T11:08:46.048+08:00
Minus 10 minutes is 2012-07-27T11:58:46.048+08:00
Minus 60 seconds is 2012-07-27T12:07:46.048+08:00

How do I use Joda Time Instant Class?

An instant in the datetime continuum specified as a number of milliseconds from 1970-01-01T00:00Z. Some classes that represent an instance in the Joda Time library includes the Instant, DateTime, DateMidnight and MutableDateTime classes.

package org.kodejava.example.joda;

import org.joda.time.DateTime;
import org.joda.time.Instant;

public class InstantDemo {
    public static void main(String[] args) {
        //
        // An instant in the datetime continuum specified as
        // a number of milliseconds from 1970-01-01T00:00Z.
        //
        // The declaration below creates 1 seconds instant from
        // 1970.
        //
        Instant instant = new Instant(1000);

        //
        // Get a new copy of instant with 500 duration added.
        //
        instant = instant.plus(500);

        //
        // Get a new copy of instant with 250 duration taken away.
        //
        instant = instant.minus(250);
        System.out.println("Milliseconds = " + instant.getMillis());

        //
        // Creating an instant that represent the current date.
        //
        DateTime dateTime = new DateTime();
        System.out.println("Date Time = " + dateTime);

        //
        // Creating an instant of a specific date and time.
        //
        DateTime independenceDay = new DateTime(2012, 8, 17, 0, 0, 0);
        System.out.println("Independence Day = " + independenceDay);
    }
}

Here is the result of our program:

Milliseconds = 1250
Date Time = 2012-02-28T17:03:45.257+08:00