似乎新的java.time
API 提供了一切java.util.Date
,甚至更多。自 Java 8 以来有更新的 API 时,
是否有任何理由使用?应该并且完全避免?java.util.Date
java.time
java.util.Date
java.util.Calendar
问问题
7648 次
1 回答
19
简短的回答:新的 APIjava.time
比使用java.util.Date
and的旧世界要好得多java.util.Calendar
。所以是的,新的代码应该首选新的 API。
快速概览:一旦我以表格形式为各种日期时间库编写了功能比较。在旧世界中几乎没有java.time
缺少但存在的功能:
- 可配置的 gregorian/julian 转换
- 基于类的打印
FieldPosition
(用于 Swing-componentFormattedTextField
)
关于弃用:尽管自 Java 1.1 以来大部分部分java.util.Date
已弃用,但该类本身(以及java.util.Calendar
,也是)并未正式弃用,只是被声明为事实上的遗留物。旧类的支持对于与遗留代码向后兼容的目标仍然很重要。所以甲骨文可能在未来的任何时候都不会停止支持。但也许甲骨文会采用更复杂的弃用策略。
未来发展:有趣的是,Java-8的发布不仅包含了一个全新的java.time
日期java.util.Calendar
/时间API (但这似乎也预示着甲骨文并不愿意在近期停止对旧 API 的支持。
于 2018-02-08T15:57:23.933 回答