This tutorial shows how to convert java.time.LocalDateTime to java.time.OffsetDateTime in Java.
OffsetDateTime in Java
OffsetDateTime is a date-time with an offset from UTC/Greenwich in the ISO-8601 calendar system, such as 2020-12-07T11:45:20+05:30.
Convert LocalDateTime to OffsetDateTime Java Program
If you have a LocalDateTime instance you just need to combine it with an offset to create an OffsetDateTime.
If you want to combine offset for the same default locale for which you have a LocalDateTime then you can do it like this.
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
public class LocalToOffset {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("LocalDateTime is: " + localDateTime);
ZoneOffset zoneOffSet = OffsetDateTime.now().getOffset();
System.out.println("ZoneOffset is: " + zoneOffSet.toString());
OffsetDateTime offsetDateTime = localDateTime.atOffset(zoneOffSet);
System.out.println("OffsetDateTime is: " + offsetDateTime);
}
}
Output
LocalDateTime is: 2020-12-09T16:36:36.616370500 ZoneOffset is: +05:30 OffsetDateTime is: 2020-12-09T16:36:36.616370500+05:30
If you want to combine Zoneoffset for any specific zone id then you can get the ZonedDateTime by passing the zoneId and OffsetDateTime from that ZonedDateTime.
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class LocalToOffset {
public static void main(String[] args) {
ZoneId zoneId = ZoneId.of("America/Chicago");
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("LocalDateTime is: " + localDateTime);
ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);
System.out.println("ZonedDateTime is: " + zonedDateTime);
OffsetDateTime offsetDateTime = zonedDateTime.toOffsetDateTime();
System.out.println("OffsetDateTime is: " + offsetDateTime);
// Same thing can also be done in a single line
offsetDateTime = localDateTime.atZone(ZoneId.of("America/Chicago")).toOffsetDateTime();
}
}
Output
LocalDateTime is: 2020-12-09T17:08:14.425502600 ZonedDateTime is: 2020-12-09T17:08:14.425502600-06:00[America/Chicago] OffsetDateTime is: 2020-12-09T17:08:14.425502600-06:00
That's all for the topic Convert LocalDateTime to OffsetDateTime in Java. If something is missing or you have something to share about the topic please write a comment.
You may also like
- Java Program to Convert Date to LocalDate, LocalDateTime
- Java Program to Convert Between Time Zones
- Display Prime Numbers in Java
- Java Generics - WildCards
- JDBC PreparedStatement Interface
- Java StringBuilder With Method Examples
- Spring Data JPA Auditing Example
- Spring Boot Example Using Spring Tool Suite (STS)
No comments:
Post a Comment