相当于 Java 8 中的 new Date().getTime()
Equivalent of new Date().getTime() in Java 8
在 Java 8 之前,我在代码中使用 new Date().getTime()
来获取当前时间戳作为数字。我可以假设 Instant.now().toEpochMilli()
等同于传统方式是安全的吗?它是否具有完全相同的行为和相似的性能特征?有没有更好的选择?
我想在周围所有组件仍然使用new Date().getTime()
的生态系统中使用Java 8方式,所以产生的结果必须是一致的。
所有 Instant.now().toEpochMilli()
、new Date().getTime()
和 System.currentTimeMillis()
都会给出自纪元以来的毫秒数。
从CPU功率和内存分配的角度来看,您应该使用System.currentTimeMillis()
,因为它是一种将任务委托给底层操作系统的本地方法(这种计算通常是非常优化的并且不会'需要垃圾回收等)。
两个选项
Instant.now().toEpochMilli()
,如你所说
System.currentTimeMillis()
正如 Andy Turner 和 Marteng 所说
两者之间的选择取决于品味。 Instant
是 Date
的现代替代品,也是许多人的自然选择。如果您想给人以现代印象,请使用它。 System.currentTimeMillis()
和 Date
一样大。虽然 Date
显然设计不佳,应该始终避免,但我不知道 System.currentTimeMillis()
.
有任何设计问题
更现代:保留 Instant
使用 long
来表示时间点是非常低级的并且很难调试,因为我们不会自然地为数字赋予任何意义。如果可以,不要保留数字,而是保留 Instant
。它还为您提供比毫秒更精细的分辨率(因为 Java 9 Instant.now()
在许多平台上具有微秒的精度)。
安全且高效?
Can I assume that Instant.now().toEpochMilli()
is safe equivalent to
the legacy way? Does it have exactly the same behavior and similar
performance characteristics?
是的,它是安全的,等效的,并且具有相似的性能特征。
只有在任何情况下都要避免 Date
和 Calendar
。它们设计不佳且早已过时,但有现代替代品。
在 Java 8 之前,我在代码中使用 new Date().getTime()
来获取当前时间戳作为数字。我可以假设 Instant.now().toEpochMilli()
等同于传统方式是安全的吗?它是否具有完全相同的行为和相似的性能特征?有没有更好的选择?
我想在周围所有组件仍然使用new Date().getTime()
的生态系统中使用Java 8方式,所以产生的结果必须是一致的。
所有 Instant.now().toEpochMilli()
、new Date().getTime()
和 System.currentTimeMillis()
都会给出自纪元以来的毫秒数。
从CPU功率和内存分配的角度来看,您应该使用System.currentTimeMillis()
,因为它是一种将任务委托给底层操作系统的本地方法(这种计算通常是非常优化的并且不会'需要垃圾回收等)。
两个选项
Instant.now().toEpochMilli()
,如你所说System.currentTimeMillis()
正如 Andy Turner 和 Marteng 所说
两者之间的选择取决于品味。 Instant
是 Date
的现代替代品,也是许多人的自然选择。如果您想给人以现代印象,请使用它。 System.currentTimeMillis()
和 Date
一样大。虽然 Date
显然设计不佳,应该始终避免,但我不知道 System.currentTimeMillis()
.
更现代:保留 Instant
使用 long
来表示时间点是非常低级的并且很难调试,因为我们不会自然地为数字赋予任何意义。如果可以,不要保留数字,而是保留 Instant
。它还为您提供比毫秒更精细的分辨率(因为 Java 9 Instant.now()
在许多平台上具有微秒的精度)。
安全且高效?
Can I assume that
Instant.now().toEpochMilli()
is safe equivalent to the legacy way? Does it have exactly the same behavior and similar performance characteristics?
是的,它是安全的,等效的,并且具有相似的性能特征。
只有在任何情况下都要避免 Date
和 Calendar
。它们设计不佳且早已过时,但有现代替代品。