在我们的代码库中,我遇到了将当前时间戳转换为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);
}

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

推荐答案

在准确性上是有区别的.

在您的第一个代码片段中,您提供了new date(),它使用CurrentTimeMillis(). 转换为OffsetDateTime时,最多只能显示毫秒.

示例:"2024-02- 02 T14:09:04.042Z"

您的第二个代码片段直接使用OffsetDateTime对象,该对象的精度为纳秒.

示例:"2024-02-02T14:09:04.042471300Z"

也许有一个要求,"只"显示/持久化毫秒,或者如果持久化为字符串,第一个显然需要更少的空间. 除此之外,我不能告诉你其中一个更有效率.

Java相关问答推荐

在Java 8之后,HashMap的最坏情况下时间复杂度仍然是O(n)而不是O(log n)?

使用java访问具体子类特定方法的最佳方法是什么?

DTO到实体,反之亦然,控制器和服务之间的哪一层应该处理转换?

如何在Java中从XML中获取特定的 node ,然后将其删除?

按属性值从流中筛选出重复项

如何修复PDF重建过程中的文本定位

如何解释Java中for-each循环中对Iterable的强制转换方法引用?

当Volatile关键字真的是必要的时候?

将java.util.Date转换为OffsetDateTime

Java-动态绑定-问题-了解

Docker不支持弹性APM服务器

在学习Spring时,通过构造函数参数0表达了不满意的依赖关系

Groovy/Java:匹配带引号的命令选项

解析方法";javax/imageio/metadata/IIOMetadata.getAsTree(Ljava/lang/String;)Lorg/w3c/dom/Node时加载约束冲突

Java页面筛选器问题

Java中不兼容的泛型类型

如果List是一个抽象接口,那么Collectors.toList()如何处理流呢?

在不使用instanceof或强制转换的情况下从父类变量调用子类方法

JAVA 正则表达式识别字符串string或字符串内的字符char

在java中使用SevenZip.openArchive方法后无法删除文件