5

我正在公司中用 Java 8 编写新项目。我建议使用 Java 8 日期时间 API,但我的一位同事说新的日期时间 API 运行缓慢。

这是真的吗?此外,我想从 Oracle 获得一些官方文档,其中会提到您不应该java.util.Date在新项目中使用。

4

3 回答 3

12

开发时java.time.*,这句话是我想添加的java.util.Date

"This class is now effectively deprecated by the Time Framework for Java."

它在源存储库中有一段时间,请参见此处

但是,此更改被 Oracle 拒绝,因此没有明确弃用java.util.Date. 但是,所有明智的开发人员通常都应该使用Instantandjava.time.*而不是java.util.Date.

于 2017-07-11T11:36:46.677 回答
5

您可以在Oracle 网站上找到答案

简而言之——不,java.util.Date不推荐使用,但 Oracle 强烈建议使用新java.time库(他们提到的专业人士可以在上面的链接中找到)。

于 2017-07-11T11:34:12.643 回答
4

甲骨文教程

我想从 Oracle 获取一些官方文档

官方Oracle 教程已用仅涵盖 java.time 类的新材料替换了有关日期和时间的教程。

现在是“旧版”</h2>

麻烦的旧日期时间类已从教程中删除,除了一个关于从旧类迁移到现代类的页面。请注意,该页面被明确标记为“<a href="https://en.wikipedia.org/wiki/Legacy_system" rel="nofollow noreferrer">legacy”。

表现

至于性能,我不知道传统类和现代类之间有任何显着差异。

在内部,这些类使用类似的数据、从纪元开始的整数计数和类似的时区信息。因此,我无法想象java.util.Date和之间的性能差异有多大java.time.Instant。如果有的话,实际上 java.time 可能会更快,因为它是完全线程安全的,因此您可以缓存和重用值而不是重新生成它们。

即使 java.time 类被证明速度较慢,它们的现代设计、使用的清晰性和结果的正确性也远比一些微小的速度差异重要。

任何指控性能问题的人都应该使用示例代码进行演示。古语有云,“忍不忍”。

于 2017-07-11T17:08:21.417 回答