Java 8 - 将 LocalDate 转换为 OffsetDateTime
2022-09-04 06:50:26
我想知道是否可以在Java 8中从LocalDate转换为OffsetDateTime。
例如,假设我得到了这个LocalDate:
1992-12-28
然后我想把它转换成这个:OffsetDateTime
1992-12-28T00:00-03:00
假设我们知道时区,例如美国/圣地亚哥。
我想知道是否可以在Java 8中从LocalDate转换为OffsetDateTime。
例如,假设我得到了这个LocalDate:
1992-12-28
然后我想把它转换成这个:OffsetDateTime
1992-12-28T00:00-03:00
假设我们知道时区,例如美国/圣地亚哥。
你可以试试这个..
OffsetDateTime o = OffsetDateTime.of(LocalDate.now(),LocalTime.NOON, ZoneOffset.UTC);
OffsetDateTime o1 = OffsetDateTime.of(LocalDateTime.now(), ZoneOffset.UTC);
我在你的问题中自由编辑了一些假设。恕我直言,一些合理的,但你应该检查一下。如果那里有问题,请更正。在这些假设下,正确的转换是:
ZoneId zone = ZoneId.of("Europe/Madrid");
LocalDate date = LocalDate.of(2019, Month.JULY, 27);
OffsetDateTime odt = date.atStartOfDay(zone)
.toOffsetDateTime();
System.out.println(odt);
输出:
2019-07-27T00:00+02:00
Java 知道夏令时 (DST),并在考虑夏令时的情况下找到时区的正确偏移量。我调用的方法产生一个 ,即带有时区的日期和时间。它有一个转换为您要求的方法。atStartOfDay
ZonedDateTime
toOffsetDateTime
OffsetDateTime