The atOffset(ZoneOffset offset) method of Instant class is used to combine this instant with an offset to create an OffsetDateTime object. This method takes ZoneOffset as a parameter to return an OffsetDateTime object and this OffsetDataTime object is formed from this instant at the specified offset from UTC/Greenwich. If the instant is too large to fit into an offset date-time then the method will throw an exception. This method is same as OffsetDateTime.ofInstant(this, offset).
Syntax:
public OffsetDateTime atOffset(ZoneOffset offset)
Parameters:
This method accepts one parameter offset which is the ZoneOffset to combine with this instant object. It should not be null
Return Value: This method returns the offset date-time formed from this instant and the specified ZoneOffset.
Exception: This method throws DateTimeException if the instant is too large to fit into an offset date-time.
Below programs illustrate the Instant.atOffset() method:
Program 1:
// Java program to demonstrate // Instant.atOffset() method import java.time.*;
public class GFG {
public static void main(String[] args)
{
// create an instance object
Instant instant
= Instant.parse( "2018-10-20T16:55:30.00Z" );
// print Instant Value
System.out.println( "Instant: "
+ instant);
// create a ZoneOffset object
// with 7200 sec means 2 hours
ZoneOffset offset = ZoneOffset.ofTotalSeconds( 7200 );
// apply atOffset method to combine ZoneOffset
// to this instant
OffsetDateTime offsetDate = instant.atOffset(offset);
// print results
System.out.println( "Offset Date and Time: "
+ offsetDate);
}
} |
Instant: 2018-10-20T16:55:30Z Offset Date and Time: 2018-10-20T18:55:30+02:00
Program 2:
// Java program to demonstrate // Instant.atOffset() method import java.time.*;
public class GFG {
public static void main(String[] args)
{
// create an instance object
Instant instant
= Instant.parse( "2018-10-20T16:55:30.00Z" );
// print Instant Value
System.out.println( "Instant: "
+ instant);
// create a ZoneOffset object
// with 3 hours 45 minutes
ZoneOffset offset
= ZoneOffset.ofHoursMinutes( 3 , 45 );
// apply atOffset method to combine ZoneOffset
// to this instant
OffsetDateTime offsetDate
= instant.atOffset(offset);
// print results
System.out.println( "Offset Date and Time: "
+ offsetDate);
}
} |
Instant: 2018-10-20T16:55:30Z Offset Date and Time: 2018-10-20T20:40:30+03:45
Program 3:
// Java program to demonstrate // Instant.atOffset() method import java.time.*;
public class GFG {
public static void main(String[] args)
{
// create an instance object
Instant instant
= Instant.now();
// print Instant Value
System.out.println( "Instant: "
+ instant);
// create a ZoneOffset Object
// with 9 hours 45 minutes 30 second
ZoneOffset offset
= ZoneOffset
.ofHoursMinutesSeconds( 9 , 45 , 30 );
// apply atOffset method to
// combine ZoneOffset to this instant
OffsetDateTime offsetDate
= instant.atOffset(offset);
// print results
System.out.println( "Offset Date and Time: "
+ offsetDate);
}
} |
Instant: 2018-11-22T08:22:19.846Z Offset Date and Time: 2018-11-22T18:07:49.846+09:45:30
Reference: https://docs.oracle.com/javase/10/docs/api/java/time/Instant.html#atOffset(java.time.ZoneOffset)