【问题标题】:Equivalent of Erlang now() in Java等价于 Java 中的 Erlang now()
【发布时间】:2018-12-02 10:40:51
【问题描述】:

我正在做一个需要时间戳来运行线程的项目。在 Erlang 中,当我们执行 now() 时,我们会得到类似

{1529,709564,578215} 代表{megaseconds, seconds, microseconds}

自纪元以来。因此,对于同时产生的两个进程,我可以获得相同的微秒值。有没有办法在 Java 中复制这个函数?

我知道Date.getTime(),它为我们提供了自纪元时间以来的毫秒数,但它没有达到目的,因为在除以数量级后我无法从中获得唯一的微秒值。

还有其他选择吗?

【问题讨论】:

    标签: java datetime erlang


    【解决方案1】:
            System.out.println(Instant.now());
    

    刚才的输出是:

    2018-06-23T05:16:45.768006Z

    在我的 Mac 上的 Java 10 上,它提供了微秒级的精度。从 Java 9 开始,它将在许多操作系统上运行,也许不是全部。 Instant.now() 返回一个 InstantInstant 从纪元开始以秒和纳秒的形式实现,如果需要,您可以单独获取它们。

    【讨论】:

    • 谢谢,它有帮助。但我不确定 Instant.now() 是否以微秒精度输出(Erlang now() 会这样做)。在提出上述要求时,我指的是stackoverflow.com/a/20689231/4244347 答案。欢迎任何解释/更正。
    • Java 依赖于操作系统和硬件的精度。 Erlang 也必然如此。所以我希望它是一样的。我显然没有在所有操作系统和硬件配置上进行测试。
    猜你喜欢
    • 2011-05-18
    • 1970-01-01
    • 2014-01-04
    • 2018-12-16
    • 1970-01-01
    • 2010-10-15
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多