我想知道在Java 8中是否可以从LocalDate转换为OffsetDateTime。
例如,假设我得到了这个LocalDate:
1992-12-28那么我想把它转换成这个OffsetDateTime
1992-12-28T00:00-03:00假设我们知道时区,例如美国/圣地亚哥。
发布于 2019-07-26 06:46:56
你可以试试这个。
OffsetDateTime o = OffsetDateTime.of(LocalDate.now(),LocalTime.NOON, ZoneOffset.UTC);
OffsetDateTime o1 = OffsetDateTime.of(LocalDateTime.now(), ZoneOffset.UTC);发布于 2021-03-14 08:06:35
有许多方法可以将LocalDate转换为OffsetDateTime。其中一些项目列于下:
1.使用ZonedDateTime#toOffsetDateTime()(: LocalDate#atStartOfDay(ZoneId zone) =>
LocalDate date = LocalDate.now();
ZoneOffset offset = ZoneOffset.UTC;
OffsetDateTime odt = date.atStartOfDay(offset).toOffsetDateTime();当您有可用的ZoneId时,也可以使用它。
LocalDate date = LocalDate.now();
// You can use a custom ZoneId e.g. ZoneId.of("Europe/London")
ZoneId zoneId = ZoneId.systemDefault();
OffsetDateTime odt = date.atStartOfDay(zoneId).toOffsetDateTime();LocalDate#atStartOfDay() 2.使用 => LocalDateTime#atOffset(ZoneOffset offset)(:
LocalDate date = LocalDate.now();
ZoneOffset offset = ZoneOffset.UTC;
OffsetDateTime odt = date.atStartOfDay().atOffset(offset);使用LocalDate#atTime(OffsetTime time)**:** 3.使用
LocalDate date = LocalDate.now();
ZoneOffset offset = ZoneOffset.UTC;
OffsetDateTime odt = date.atTime(OffsetTime.of(LocalTime.MIDNIGHT, offset));4.使用OffsetDateTime#of(LocalDate date, LocalTime time, ZoneOffset offset)(:
LocalDate date = LocalDate.now();
ZoneOffset offset = ZoneOffset.UTC;
OffsetDateTime odt = OffsetDateTime.of(date, LocalTime.MIDNIGHT, offset);备注:
ZoneOffset,例如ZoneOffset offset = ZoneOffset.of("+02:00")。LocalDate,例如LocalDate date = LocalDate.of(2021, 3, 14)。发布于 2019-07-26 06:47:54
假设您确实拥有LocalDateTime,您可以这样做:
ZoneOffset zoneOffset = ZoneOffset.ofHours(2);
OffsetDateTime offsetDateTime = ldt.atOffset(zoneOffset);ldt是您的LocalDateTime实例。
https://stackoverflow.com/questions/57214468
复制相似问题