There are many ways to convert LocalDateTime
to OffsetDateTime
. Some of them are listed below:
1. Using LocalDateTime#atOffset(ZoneOffset offset)
:
LocalDateTime ldt = LocalDateTime.now();
ZoneOffset offset = ZoneOffset.UTC;
OffsetDateTime odt = ldt.atOffset(offset);
2. Using LocalDateTime#atZone(ZoneId zone)
=> ZonedDateTime#toOffsetDateTime()
:
LocalDateTime ldt = LocalDateTime.now();
// Change the ZoneId as required e.g. ZoneId.of("Europe/London")
ZoneId zoneId = ZoneId.systemDefault();
OffsetDateTime odt = ldt.atZone(zoneId).toOffsetDateTime();
3. Using OffsetDateTime#of(LocalDateTime dateTime, ZoneOffset offset)
:
LocalDateTime ldt = LocalDateTime.now();
ZoneOffset offset = ZoneOffset.UTC;
OffsetDateTime odt = OffsetDateTime.of(ldt, offset);
4. ZonedDateTime#of(LocalDateTime localDateTime, ZoneId zone)
=> ZonedDateTime#toOffsetDateTime()
:
LocalDateTime ldt = LocalDateTime.now();
// Change the ZoneId as required e.g. ZoneId.of("Europe/London")
ZoneId zoneId = ZoneId.systemDefault();
OffsetDateTime odt = ZonedDateTime.of(ldt, zoneId).toOffsetDateTime();
Notes:
- In all the solutions given above, replace the sample
ZoneOffset
as required e.g.ZoneOffset offset = ZoneOffset.of("+02:00")
. - In all the solutions given above, replace the sample
LocalDateTime
as required e.g.LocalDateTime ldt = LocalDateTime.of(2021, 3, 14, 10, 20)
.