如何在没有创build新date的情况下获得Java系统时间

我需要获取系统date,而Java提供了“new Date()。getTime()”。

但我需要避免新的对象分配(我在embedded式系统上工作)。 我怎样才能得到系统时间没有分配一个新的date对象?

正如jzd所说,你可以使用System.currentTimeMillis 。 如果您 Date对象中需要它但不想创build新的 Date对象,则可以使用Date.setTime重用现有的Date对象。 就我个人而言,我讨厌Date是可变的,但在这个特殊情况下对你也许是有用的。 同样, Calendar也有一个setTimeInMillis方法。

如果可能的话,最好保持一段long 。 如果你只需要一个时间戳,那么这将是最好的方法。

这应该工作:

 System.currentTimeMillis(); 

你可以使用System.currentTimeMillis()

至less在OpenJDK中, Date使用了这个。

System的调用是使用本地的JVM方法,所以我们不能肯定在这个覆盖下没有任何分配,虽然在这里似乎不大可能。

使用System.currentTimeMillis()System.nanoTime()