推荐哪一个:Instant.now()。toEpochMilli()或System.currentTimeMillis()

【字号: 日期:2024-02-27浏览:26作者:雯心
如何解决推荐哪一个:Instant.now()。toEpochMilli()或System.currentTimeMillis()?

两者都很好。除少数目的外,均不推荐使用。

从纪元开始,您需要几毫秒?

在Java中,我们可以通过多种方法来获取当前时间戳,

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

Java诞生之初的许多方法,以及标准库中的许多方法,都以long自纪元以来的毫秒数为单位。但是,今天我会考虑过时的。看看是否可以找到(或创建)或更现代的方法,例如以aInstant作为参数。面向对象,不要使用基本类型long。这将使您的代码更清晰,更容易解释。

正如Eliott Frisch在评论中说的那样,如果这是用于测量经过时间,则您可能更喜欢的高分辨率System.nanoTime()。

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

假设您有充分的理由想要从纪元开始算起毫秒,…

推荐哪个:Instant.Now().toEpochMilli()或 System.currentTimeMillis()[?]

意见不同。有人会说您应该使用java.time(现代的日期和时间API)进行所有日期和时间工作。这意味着Instant在这里。联合国秘书长java.time通常是因为从Java1.0和1.1的日期和时间类的好习惯(Date,Calendar,TimeZone,DateFormat,SimpleDateFormat等)的设计不当,现在早已过时的,肯定不是任何我们应该再使用。在另一方面,我不知道有任何设计问题的System.curremtTimeMillis()特别(除了我上面提到的有关使用long毫秒数可言,这显然是内在都Instant.Now().toEpochMilli()和System.currentTimeMillis())。

如果两者之间的性能差异不大,我很难想象这很重要的情况。

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

解决方法

在Java中,我们可以有许多不同的方式来获得当前的时间戳,但哪一个建议:Instant.now().toEpochMilli()或System.currentTimeMillis()

相关文章: