【发布时间】:2011-06-19 07:37:44
【问题描述】:
我需要获取系统日期,Java 提供了new Date().getTime()。
但我需要避免新的对象分配(我正在使用嵌入式系统)。如何在不分配新的Date 对象的情况下获取系统时间?
【问题讨论】:
标签: java date memory-management
我需要获取系统日期,Java 提供了new Date().getTime()。
但我需要避免新的对象分配(我正在使用嵌入式系统)。如何在不分配新的Date 对象的情况下获取系统时间?
【问题讨论】:
标签: java date memory-management
正如 jzd 所说,您可以使用System.currentTimeMillis。如果您需要它in Date 对象但不想创建 新 Date 对象,您可以使用 Date.setTime 重用现有的 @987654325 @ 目的。我个人讨厌Date 是可变的这一事实,但也许在这种特殊情况下它对你有用。同样,Calendar 有一个setTimeInMillis 方法。
如果可能,最好将其保留为long。如果您只需要一个有效的时间戳,那么这将是最好的方法。
【讨论】:
这应该可行:
System.currentTimeMillis();
【讨论】:
您可以使用System.currentTimeMillis()。
至少在 OpenJDK 中,Date 在幕后使用了它。
System 中的调用是对本机 JVM 方法的调用,因此我们不能确定没有分配发生在幕后,尽管这里似乎不太可能。
【讨论】:
使用 System.currentTimeMillis() 或 System.nanoTime()。
【讨论】: