我需要获取系统日期,Java提供new Date().getTime()
。
但我需要避免新的对象分配(我正在使用嵌入式系统)。如何在不分配新Date
对象的情况下获取系统时间?
答案 0 :(得分:58)
正如jzd所说,你可以使用System.currentTimeMillis
。如果您需要 Date
个对象但又不想创建新 Date
对象,则可以使用Date.setTime
重用现有的Date
对象。就个人而言,我讨厌Date
是可变的这一事实,但也许在这种特殊情况下对你有用。同样,Calendar
有setTimeInMillis
方法。
如果可能的话,将它保持为long
可能会更好。如果您只需要有效的时间戳,那么这将是最好的方法。
答案 1 :(得分:49)
这应该有效:
System.currentTimeMillis();
答案 2 :(得分:11)
您可以使用System.currentTimeMillis()
。
至少在OpenJDK中,Date
使用了这个。
System
中的调用是对本机JVM方法的调用,所以我们不能肯定地说没有在封面下发生分配,尽管这里似乎不太可能。
答案 3 :(得分:7)
使用 System.currentTimeMillis()或 System.nanoTime()。