java.util.Date 到 OffsetDateTime 的转换

问题描述 投票:0回答:1

在我们的代码库中,我遇到了将当前时间戳转换为

OffsetDateTime
:

的代码
public static OffsetDateTime getUTCTime(){
    Date date = new Date();
    // Convert Date object to UTC OffsetDateTime object
    Instant instant = date.toInstant();
    return instant.atOffset(ZoneOffset.UTC);
}

我想知道是否可以用以下代码替换此代码:

public static OffsetDateTime getUTCTime(){
    return OffsetDateTime.now(ZoneOffset.UTC);
}

两个片段的返回值是否相等?

java timezone timezone-offset
1个回答
-2
投票

是的,您提供的两个代码片段在功能方面应该是等效的。两个片段的目的都是获取 UTC 中的当前时间戳作为 OffsetDateTime 对象。

第一个片段使用旧的 Date 类来捕获当前时间戳,将其转换为 Instant,然后使用 UTC 偏移量创建 OffsetDateTime。

第二个代码片段使用更现代的 OffsetDateTime.now(ZoneOffset.UTC) 方法,该方法直接提供表示当前 UTC 时间的 OffsetDateTime 对象。

总而言之,您可以安全地将第一个代码片段替换为第二个代码片段,并且返回的值应该是相等的。第二个片段更加简洁,并利用了 Java 8 中引入的更新的日期和时间 API。

© www.soinside.com 2019 - 2024. All rights reserved.