首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 8-将LocalDate转换为OffsetDateTime

Java 8-将LocalDate转换为OffsetDateTime
EN

Stack Overflow用户
提问于 2019-07-26 06:43:35
回答 4查看 26.8K关注 0票数 13

我想知道在Java 8中是否可以从LocalDate转换为OffsetDateTime。

例如,假设我得到了这个LocalDate:

代码语言:javascript
复制
1992-12-28

那么我想把它转换成这个OffsetDateTime

代码语言:javascript
复制
1992-12-28T00:00-03:00

假设我们知道时区,例如美国/圣地亚哥。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-07-26 06:46:56

你可以试试这个。

代码语言:javascript
复制
OffsetDateTime o = OffsetDateTime.of(LocalDate.now(),LocalTime.NOON, ZoneOffset.UTC);
OffsetDateTime o1 = OffsetDateTime.of(LocalDateTime.now(), ZoneOffset.UTC);
票数 13
EN

Stack Overflow用户

发布于 2021-03-14 08:06:35

有许多方法可以将LocalDate转换为OffsetDateTime。其中一些项目列于下:

1.使用ZonedDateTime#toOffsetDateTime()(: LocalDate#atStartOfDay​(ZoneId zone) =>

代码语言:javascript
复制
LocalDate date = LocalDate.now();
ZoneOffset offset = ZoneOffset.UTC;
OffsetDateTime odt = date.atStartOfDay(offset).toOffsetDateTime();

当您有可用的ZoneId时,也可以使用它。

代码语言:javascript
复制
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)(:

代码语言:javascript
复制
LocalDate date = LocalDate.now();
ZoneOffset offset = ZoneOffset.UTC;
OffsetDateTime odt = date.atStartOfDay().atOffset(offset);

使用LocalDate#atTime(OffsetTime time)**:** 3.使用

代码语言:javascript
复制
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)(:

代码语言:javascript
复制
LocalDate date = LocalDate.now();
ZoneOffset offset = ZoneOffset.UTC;
OffsetDateTime odt = OffsetDateTime.of(date, LocalTime.MIDNIGHT, offset);

备注:

  1. 在上面给出的所有解决方案中,根据需要替换示例ZoneOffset,例如ZoneOffset offset = ZoneOffset.of("+02:00")
  2. 在上面给出的所有解决方案中,根据需要替换示例LocalDate,例如LocalDate date = LocalDate.of(2021, 3, 14)
票数 5
EN

Stack Overflow用户

发布于 2019-07-26 06:47:54

假设您确实拥有LocalDateTime,您可以这样做:

代码语言:javascript
复制
ZoneOffset zoneOffset = ZoneOffset.ofHours(2);
OffsetDateTime offsetDateTime = ldt.atOffset(zoneOffset);

ldt是您的LocalDateTime实例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57214468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档