Java8 Adding Hours to Localdatetime Not Working

Java8 Adding Hours to Localdatetime Not Working

I tried like below, but in both the cases it is showing same time? What i am doing wrong.

    LocalDateTime currentTime = LocalDateTime.now(ZoneId.of("UTC"));
    Instant instant = currentTime.toInstant(ZoneOffset.UTC);
    Date currentDate = Date.from(instant);
    System.out.println("Current Date = " + currentDate);
    currentTime.plusHours(12);
    Instant instant2 = currentTime.toInstant(ZoneOffset.UTC);
    Date expiryDate = Date.from(instant2);
    System.out.println("After 12 Hours = " + expiryDate);

"Current Date" Time is showing Same as "After 12 Hours"...

2 Answers

The documentation of LocalDateTime specifies the instance of LocalDateTime is immutable, for example plusHours

public LocalDateTime plusHours(long hours)

Returns a copy of this LocalDateTime with the specified number of hours added.

This instance is immutable and unaffected by this method call.

Parameters:
hours - the hours to add, may be negative
Returns:
a LocalDateTime based on this date-time with the hours added, not null
Throws:
DateTimeException - if the result exceeds the supported date range

So, you create a new instance of LocalDateTime when you execute plus operation, you need to assign this value as follows:

LocalDateTime nextTime = currentTime.plusHours(12);
Instant instant2 = nextTime.toInstant(ZoneOffset.UTC);
Date expiryDate = Date.from(instant2);
System.out.println("After 12 Hours = " + expiryDate);

I hope it can be helpful for you.

1

From the java.time package Javadoc (emphasis mine):

The classes defined here represent the principal date-time concepts, including instants, durations, dates, times, time-zones and periods. They are based on the ISO calendar system, which is the de facto world calendar following the proleptic Gregorian rules. All the classes are immutable and thread-safe.

Since every class in the java.time package is immutable, you need to capture the result:

LocalDateTime after = currentTime.plusHours(12);
...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

James H. Sterling
Author

James H. Sterling

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.