如何在没有创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() 。