gpt4 book ai didi

java - 推荐哪个 : Instant. now().toEpochMilli() or System.currentTimeMillis()

转载 作者:行者123 更新时间:2023-11-30 06:40:14 66 4
gpt4 key购买 nike

在Java中,我们可以有多种不同的方法来获取当前时间戳,但推荐使用以下一种:Instant.now().toEpochMilli()System.currentTimeMillis()

最佳答案

两者都很好。除非出于少数目的,否则都不推荐。

自纪元以来,您需要多少毫秒?

In Java, we can have many different ways to get the current timestamp,

对于当前时间戳,只需使用 Instant.now()。无需转换为毫秒。

Java 最初几年的许多方法,以及标准库中的许多方法,都采用自纪元以来的 long 毫秒数作为参数。但是,今天我会认为这是过时的。看看您是否可以找到——或创建——或更现代的方法,例如将 Instant 作为参数。面向对象,不要使用原始的 long。这将使您的代码更清晰、更易于解释。

正如 Eliott Frisch 在评论中所说,如果这是为了测量耗时,您可能更喜欢分辨率更高的 System.nanoTime()

如果您确实需要自纪元以来的毫秒数

假设您有充分的理由想要计算自纪元以来的毫秒数,...

which one is recommended: Instant.now().toEpochMilli() or System.currentTimeMillis()[?]

意见不一。有人会说您应该使用 java.time,即现代日期和时间 API 来处理所有日期和时间工作。这意味着 Instant 在这里。 Unsg java.time 通常是一个好习惯,因为来自 Java 1.0 和 1.1 的日期和时间类(DateCalendarTimeZoneDateFormatSimpleDateFormat 和其他)设计不佳,现在早已过时,当然不应该再使用了。另一方面,我不知道 System.curremtTimeMillis() 有任何设计问题(除了我上面提到的关于使用 long 毫秒数的问题,这显然是 Instant.now().toEpochMilli()System.currentTimeMillis() 所固有的。

如果两者之间存在细微的性能差异,我很难想象这会产生什么影响。

选择您认为在您的上下文中更具可读性且不那么令人惊讶的选项。

类似问题

关于java - 推荐哪个 : Instant. now().toEpochMilli() or System.currentTimeMillis(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58705657/

66 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com