Mic*_*das 5 java timestamp java-time
在 Java 8 之前,我在代码中使用new Date().getTime()以获取当前时间戳作为数字。我可以假设这Instant.now().toEpochMilli()与传统方式一样安全吗?它是否具有完全相同的行为和相似的性能特征?有没有更好的选择?
我想在所有周围组件仍然使用的生态系统中使用 Java 8 方式new Date().getTime(),因此产生的结果必须一致。
所有的Instant.now().toEpochMilli(),new Date().getTime()并且System.currentTimeMillis()会给你的毫秒数,因为时代。
从 CPU 功率和内存分配的角度来看,您应该使用System.currentTimeMillis()它,因为它是一种将任务委托给底层操作系统的本机方法(这种计算通常非常优化,不需要垃圾收集等)。
Instant.now().toEpochMilli(), 如你所说System.currentTimeMillis() 正如安迪·特纳和马腾所说两者之间的选择是一个品味问题。Instant是Date许多自然选择的现代替代品。如果您想给人现代感,请使用它。System.currentTimeMillis()和 一样古老Date。虽然Date它的设计显然很糟糕,应该始终避免使用,但我不知道System.currentTimeMillis().
使用 along来表示时间点非常低级且难以调试,因为我们不会自然地为数字分配任何含义。如果可以的话,不要保留一个数字,而是保留一个Instant. 它还为您提供比毫秒更精细的分辨率(因为 Java 9Instant.now()在许多平台上具有微秒的精度)。
我可以假设这
Instant.now().toEpochMilli()与传统方式一样安全吗?它是否具有完全相同的行为和相似的性能特征?
是的,它是安全且等效的,并且具有相似的性能特征。
只有在任何情况下都避免Date和Calendar。它们设计不佳,早已过时,并有现代替代品。
| 归档时间: | 
 | 
| 查看次数: | 1697 次 | 
| 最近记录: |