【发布时间】:2020-03-01 11:47:39
【问题描述】:
在 Java 中,我们可以有多种不同的方式来获取当前时间戳,但推荐使用哪一种:
Instant.now().toEpochMilli() 或 System.currentTimeMillis()
【问题讨论】:
-
定义更好?性能更高?我敢打赌他们的表现是一样的。更具可读性?那只是意见。但是,我认为两者都比
Calendar.getInstance().getTimeInMillis() -
在性能方面,
System.currentTimeMillis()应该更快,因为开销更少(不创建对象)。在精度方面,当支持微秒级分辨率时,Instant-方法在某些平台上可能会更好。 -
@ElliottFrisch 我已经更改了措辞:-D
-
真正的问题是你为什么要得到时间戳?如果您正在计时,那么
System.nanoTime()可能是您要走的路(如果您想要precision)。我可能寻找更高层次的抽象;喜欢StopWatch。 -
@MenoHochschild 微秒分辨率有什么关系,当两个构造都将截断到毫秒时?
标签: java epoch java-time milliseconds java.time.instant