java.util.Date会被弃用吗?


java.time包早在2014年就在Java 8中发布了,距今已有8年多了。
有很多理由可以避免使用Date、Calendar、DateFormat和它们的子类。也没有什么理由使用 java.time

使用或依赖这些遗留类的应用程序和库的应用程序和库已经有足够的时间继续前进并提供java.time.*的替代品。

没有一个熟练的java程序员会在新的应用程序中使用这些遗留类。除非是在与遗留的API集成时。现在使用这些类至少应该被认为是糟糕的(bug的来源、安全问题等),至少应该被认为是一种糟糕的编程实践。新手、不熟练的、粗心的和懒惰的程序员,他们应该知道的更多,如果仍然乐此不疲地继续使用传统的类,惹恼了那些更开明的人。

所以,我的建议很简单。现在是时候将它们标记为@Deprecated(但不是为了删除)。

预计负面影响会非常小。流行的产品如Spring和Jakarta等流行的产品要么已经向前迈进了一步,提供了java.time.*的替代品。或者可以快速而容易地做到这一点。

在积极影响方面,不仅仅是阻止使用丑陋和恼人的Date、Calendar和DateFormat的API的使用。这些类是经常出现的错误的来源,这些错误是很难追踪和调试的。由于它们的易变性和线程的不安全性,这些类经常是错误的来源,很难跟踪和调试。
因此,我们已经到了让编译器发出警告的时候了。

注:也不要在全新的代码中使用 SimpleDateFormat