Saturday, August 30, 2025
HomeLanguagesJavaJava 8 Clock offset() method with Examples

Java 8 Clock offset() method with Examples

Java Clock class is part of Date Time API, java.time.Clock, of Java. The Java Date Time API was added from Java version 8.

The offset() method is a static method of Clock class which returns a clock with instant equal to the sum of the instants of clock passed as parameter and specific Offset duration. If the duration added is positive, then the returned clock represents the instant of the clock later by the specified duration from base clock. If the duration added is negative, then the returned clock is earlier than the date and time of the base clock. A duration of Zero does nothing to the base clock and returns the base clock.

If the base clock is immutable, thread-safe and Serializable then returned clock is also immutable, thread-safe and Serializable.

Syntax:

public static Clock offset(Clock baseClock, Duration offsetDuration)

Parameters: This method accepts two mandatory parameters:

  • baseclock – a clock for adding duration. It cannot be a null value.
  • offsetDuration – duration to add with baseClock. It cannot be a null value as well.

Return Value: This method returns a clock with instant equal to the sum of instants of clock passed as parameter and Specific Offset duration.

Below programs illustrates offset(Clock baseClock, Duration offsetDuration) method of java.time.Clock class:

Program 1: When offset is passed as hours.




// Java program to demonstrate offset()
// method of Clock class
  
import java.time.*;
  
// create class
public class offsetMethodDemo {
  
    // Main method
    public static void main(String[] args)
    {
  
        // base Clock with default zone
        Clock realClock = Clock.systemDefaultZone();
  
        // print current time
        System.out.println("Real clock instant is "
                           + realClock.instant());
  
        // Creating another clock with offset 0
        Clock clock = Clock.offset(realClock, Duration.ZERO);
  
        // print new clock
        System.out.println("New clock instant"
                           + " with Duration = 0 is "
                           + clock.instant());
  
        // Creating the clock with 24 hours positive offset
        clock = Clock.offset(realClock, Duration.ofHours(24));
  
        // print new clock
        System.out.println("New clock instant"
                           + " with Duration = 24hours is "
                           + clock.instant());
  
        // Creating the clock with 24 hours negative offset
        clock = Clock.offset(realClock, Duration.ofHours(-24));
  
        // print new clock
        System.out.println("New clock instant"
                           + " with Duration = -24hours is "
                           + clock.instant());
    }
}


Output:

Real clock instant is 2018-08-21T09:43:13.519Z
New clock instant with Duration = 0 is 2018-08-21T09:43:13.785Z
New clock instant with Duration = 24hours is 2018-08-22T09:43:13.785Z
New clock instant with Duration = -24hours is 2018-08-20T09:43:13.785Z

Program 2: When offset is passed as seconds and minutes.




// Java program to demonstrate offset() 
// method of Clock class
  
import java.time.*;
  
// create class
public class offsetMethodDemo {
  
    // Main method
    public static void main(String[] args)
    {
  
        // create a Zone Id for Europe/Paris
        ZoneId zoneId = ZoneId.of("Europe/Paris");
  
        // base Clock with default zone
        Clock realClock = Clock.system(zoneId);
  
        // print current time
        System.out.println("Real clock instant is "
                           + realClock.instant());
  
        // Creating the clock with 50 seconds positive offset
        Clock clock = Clock.offset(realClock, Duration.ofSeconds(50));
  
        // print new clock
        System.out.println("Time after 50 second later"
                           + " than real Clock is " + clock.instant());
  
        // Creating the clock with 30 minutes positive offset
        clock = Clock.offset(realClock, Duration.ofMinutes(30));
  
        // print new clock
        System.out.println("Time after 30 minutes later"
                           + " than real Clock is " + clock.instant());
    }
}


Output:

Real clock instant is 2018-08-21T09:43:18.921Z
Time after 50 second later than real Clock is 2018-08-21T09:44:08.969Z
Time after 30 minutes later than real Clock is 2018-08-21T10:13:18.969Z

Reference: https://docs.oracle.com/javase/8/docs/api/java/time/Clock.html#offset-java.time.Clock-java.time.Duration-

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32250 POSTS0 COMMENTS
Milvus
81 POSTS0 COMMENTS
Nango Kala
6617 POSTS0 COMMENTS
Nicole Veronica
11792 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11840 POSTS0 COMMENTS
Shaida Kate Naidoo
6732 POSTS0 COMMENTS
Ted Musemwa
7014 POSTS0 COMMENTS
Thapelo Manthata
6689 POSTS0 COMMENTS
Umr Jansen
6704 POSTS0 COMMENTS