Two equivalent ways to add an amount of time to LocalDateTime
- localDateTime.plus( 1, ChronoUnit.DAYS );
- localDateTime.plusDays( 1 );
minus() / minusDays() is used to substract an amount of time from LocalDateTime.
Negative values can also be passed to plus() / plusMonths() method instead of using minus() / minusMonths() etc.
These methods will also work with OffsetDateTime, ZonedDateTime.
Only date related ChronoUnit enums apply for for LocalDate, similarly only time related enums apply for LocalTime.
Not all ChronoUnit enums will work with Instant, but you can convert them to LocalDateTime or ZonedDateTime to add/minus a duration, and then convert them back to Instant.
Example 1: LocalDateTime
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
class DateTimeExample
{
public static void main ( String[] args )
{
LocalDateTime localDateTime1 = LocalDateTime.now();
System.out.println( “localDateTime: ” + localDateTime1 );
System.out.println( “LocalDateTime plus(1): ” + localDateTime1.plus( 1, ChronoUnit.DAYS ) );
System.out.println( “LocalDateTime plusDays(1): ” + localDateTime1.plusDays( 1 ) );
System.out.println( “LocalDateTime minus(1): ” + localDateTime1.minus( 1, ChronoUnit.DAYS ) );
System.out.println( “LocalDateTime plusDays(-1): ” + localDateTime1.plusDays( -1 ) );
System.out.println( “LocalDateTime minusDays(1): ” + localDateTime1.minusDays( 1 ) );
System.out.println( “LocalDateTime plusNanos(10000): ” + localDateTime1.plusNanos( 10000 ) );
System.out.println( “LocalDateTime plusSeconds(100): ” + localDateTime1.plusSeconds( 100 ) );
System.out.println( “LocalDateTime plusMinutes(10): ” + localDateTime1.plusMinutes( 10 ) );
System.out.println( “LocalDateTime plusHours(1): ” + localDateTime1.plusHours( 1 ) );
System.out.println( “LocalDateTime plusMonths(1): ” + localDateTime1.plusMonths( 1 ) );
System.out.println( “LocalDateTime plusWeeks(1): ” + localDateTime1.plusWeeks( 1 ) );
System.out.println( “LocalDateTime plusYears(1): ” + localDateTime1.plusYears( 1 ) );
}
}
Output:
localDateTime: 2021-01-16T22:34:05.405
LocalDateTime plus(1): 2021-01-17T22:34:05.405
LocalDateTime plusDays(1): 2021-01-17T22:34:05.405
LocalDateTime minus(1): 2021-01-15T22:34:05.405
LocalDateTime plusDays(-1): 2021-01-15T22:34:05.405
LocalDateTime minusDays(1): 2021-01-15T22:34:05.405
LocalDateTime plusNanos(10000): 2021-01-16T22:34:05.405010
LocalDateTime plusSeconds(100): 2021-01-16T22:35:45.405
LocalDateTime plusMinutes(10): 2021-01-16T22:44:05.405
LocalDateTime plusHours(1): 2021-01-16T23:34:05.405
LocalDateTime plusMonths(1): 2021-02-16T22:34:05.405
LocalDateTime plusWeeks(1): 2021-01-23T22:34:05.405
LocalDateTime plusYears(1): 2022-01-16T22:34:05.405
Example 2: Instant
import java.time.Instant;
import java.time.temporal.ChronoUnit;
class DateTimeExample
{
public static void main ( String[] args )
{
Instant instant1 = Instant.now();
System.out.println( “instant1: ” + instant1 );
System.out.println( “instant plus DAYS(1): ” + instant1.plus( 1, ChronoUnit.DAYS ) );
System.out.println( “instant plus DAYS(-1): ” + instant1.plus( -1, ChronoUnit.DAYS ) );
System.out.println( “instant minus DAYS(1): ” + instant1.minus( 1, ChronoUnit.DAYS ) );
System.out.println( “Instant plus HALF_DAYS(1): ” + instant1.plus( 1 , ChronoUnit.HALF_DAYS ) ) ;
System.out.println( “Instant plus HOURS(1): ” + instant1.plus( 1 , ChronoUnit.HOURS ) ) ;
System.out.println( “Instant plus MINUTES(1): ” + instant1.plus( 1 , ChronoUnit.MINUTES ) ) ;
System.out.println( “Instant plus SECONDS(1): ” + instant1.plus( 1 , ChronoUnit.SECONDS ) ) ;
System.out.println( “Instant plus MICROS(1): ” + instant1.plus( 1 , ChronoUnit.MICROS ) ) ;
System.out.println( “Instant plus MILLIS(1): ” + instant1.plus( 1 , ChronoUnit.MILLIS ) ) ;
System.out.println( “Instant plus NANOS(1): ” + instant1.plus( 1 , ChronoUnit.NANOS ) ) ;
}
}
Output:
instant1: 2021-01-16T17:04:05.407Z
instant plus DAYS(1): 2021-01-17T17:04:05.407Z
instant plus DAYS(-1): 2021-01-15T17:04:05.407Z
instant minus DAYS(1): 2021-01-15T17:04:05.407Z
Instant plus HALF_DAYS(1): 2021-01-17T05:04:05.407Z
Instant plus HOURS(1): 2021-01-16T18:04:05.407Z
Instant plus MINUTES(1): 2021-01-16T17:05:05.407Z
Instant plus SECONDS(1): 2021-01-16T17:04:06.407Z
Instant plus MICROS(1): 2021-01-16T17:04:05.407001Z
Instant plus MILLIS(1): 2021-01-16T17:04:05.408Z
Instant plus NANOS(1): 2021-01-16T17:04:05.407000001Z