如何将 LocalDateTime 转换为 OffsetDateTime?
private OffsetDateTime getEntryDate(Payment payment){
return Optional.ofNullable(payment).map(Payment::getEntryDate).map(SHOULD RETURN OffsetDateTime)
.orElse(null);
}
Run Code Online (Sandbox Code Playgroud)
Payment::getEntryDate 将返回 LocalDateTime
Cee*_*Tee 11
您需要获取 ZoneOffset 以在创建 OffsetDateTime 时使用。一种方法是为您的位置使用 ZoneId:
final ZoneId zone = ZoneId.of("Europe/Paris");
LocalDateTime localDateTime = LocalDateTime.now();
ZoneOffset zoneOffSet = zone.getRules().getOffset(localDateTime);
OffsetDateTime offsetDateTime = localDateTime.atOffset(zoneOffSet);
System.out.println(offsetDateTime); // 2019-08-08T09:54:10.761+02:00
Run Code Online (Sandbox Code Playgroud)
有很多方法可以转换LocalDateTime为OffsetDateTime. 其中一些如下所列:
1. 使用LocalDateTime#atOffset?(ZoneOffset offset):
LocalDateTime ldt = LocalDateTime.now();
ZoneOffset offset = ZoneOffset.UTC;
OffsetDateTime odt = ldt.atOffset(offset);
Run Code Online (Sandbox Code Playgroud)
2. 使用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();
Run Code Online (Sandbox Code Playgroud)
3. 使用OffsetDateTime#of?(LocalDateTime dateTime, ZoneOffset offset):
LocalDateTime ldt = LocalDateTime.now();
ZoneOffset offset = ZoneOffset.UTC;
OffsetDateTime odt = OffsetDateTime.of(ldt, offset);
Run Code Online (Sandbox Code Playgroud)
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();
Run Code Online (Sandbox Code Playgroud)
笔记:
ZoneOffset根据需要更换样品,例如ZoneOffset offset = ZoneOffset.of("+02:00")。LocalDateTime根据需要更换样品,例如LocalDateTime ldt = LocalDateTime.of(2021, 3, 14, 10, 20)。| 归档时间: |
|
| 查看次数: |
15063 次 |
| 最近记录: |