推荐哪一个:Instant.now().toEpochMilli() 或 System.currentTimeMillis()
在Java中,我们可以有许多不同的方法来获取当前时间戳,但建议使用哪一种:或Instant.now().toEpochMilli()
System.currentTimeMillis()
在Java中,我们可以有许多不同的方法来获取当前时间戳,但建议使用哪一种:或Instant.now().toEpochMilli()
System.currentTimeMillis()
两者都很好。除了少数目的外,两者都不建议这样做。
在Java中,我们可以有许多不同的方法来获取当前时间戳,
对于当前时间戳,只需使用 .无需转换为毫秒。Instant.now()
Java最初几年的许多方法,也包括标准库中的许多方法,自时代以来就花费了几毫秒作为参数。然而,今天我认为这是老式的。看看你是否能找到——或者创建——或者更现代的方法,例如用as参数代替。走向面向对象,不要使用基元。它将使您的代码更清晰,更不言自明。long
Instant
long
正如 Eliott Frisch 在评论中所说,如果这是为了测量经过的时间,您可能更喜欢 的更高分辨率。System.nanoTime()
假设您有充分的理由想要自纪元以来的毫秒数,...
哪一个是推荐的:或[?]
Instant.now().toEpochMilli()
System.currentTimeMillis()
意见不一。有人会说,你应该使用java.time,现代日期和时间API,用于所有日期和时间工作。这意味着这里。Unsg java.time通常是一个好习惯,因为Java 1.0和1.1(,,等)的日期和时间类设计不佳,现在已经过时了,当然我们不应该再使用任何应该使用的东西。另一方面,我特别不知道任何设计问题(除了我上面提到的关于使用毫秒数的内容,这显然是两者固有的 和 )。Instant
Date
Calendar
TimeZone
DateFormat
SimpleDateFormat
System.curremtTimeMillis()
long
Instant.now().toEpochMilli()
System.currentTimeMillis()
如果两者之间有轻微的性能差异,我很难想象这很重要的情况。
选择您认为在您的上下文中更具可读性和更少令人惊讶的选项。
根据我的理解是更好的,因为Java-8以后的使用已被推荐。Instant.now().toEpochMilli()
Instant
此外,它基于时间轴工作,即时表示该时间轴上的特定时刻。
如果是方法,它返回当前时间(以毫秒为单位)。该值的粒度取决于基础操作系统,并且可能更大。java.lang.System.currentTimeMillis()
因此,为了保持一致,请使用。Instant