java-8 - java.util.Date 和 java.util.Calendar 是否已弃用?

标签 java-8 java.util.date jsr310

看来新的 java.time API 提供了 java.util.Date 的所有内容以及更多内容。
当 Java 8 以来出现较新的 java.time API 时,是否有任何理由使用 java.util.Date ? 是否应该完全避免 java.util.Datejava.util.Calendar

最佳答案

简短回答:新的 API java.time 比使用 java.util.Date 的旧世界要好得多java.util.Calendar。所以,是的,新代码中应该首选新 API。

快速概述:有一次我写了 comparison of features in table form适用于各种日期时间库。几乎没有 java.time 缺失但在旧世界中存在的功能:

  • 可配置的公历/儒略转换
  • 基于类 FieldPosition 进行打印(在 Swing 组件 FormattedTextField 中使用)

关于弃用:尽管自 Java 1.1 以来,java.util.Date 的大部分内容已弃用,但该类本身(以及 java.util.Calendar code> 也)并未被正式弃用,只是声明为事实上的遗产。对于向后兼容遗留代码的目标来说,旧类的支持仍然很重要。所以Oracle在未来任何时候都可能不会停止支持。但也许Oracle会应用更多sophisticated deprecation strategies

future 发展:有趣的是,Java-8 的发布不仅包含了全新的日期/时间 API (java.time),而且还引入了新的日期/时间 API (java.time)。对 java.util.Calendar 的一些增强,例如 Calendar.BuilderSHORT_STANDALONE等等。好吧,我只能推测,但这似乎也表明 Oracle 不愿意在不久的将来停止对旧 API 的支持。

关于java-8 - java.util.Date 和 java.util.Calendar 是否已弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48688736/

相关文章:

java - Oracle 是否有官方文档说我们不应该在新项目中使用 java.util.Date

java - 使用 Jersey 客户端,Java 8 Date API (Jsr310) 的问题

Java 8 流 - 链中的每个步骤都针对整个输入进行评估,还是项目通过?

java - 将 SQL 日期转换为 Java.util.date

java - JodaTime 从 Java.util.Date 转换为 DateTime(或 LocalDate)

java - 对 java.util.Date 中的 getTime 和 getTimeImpl 方法感到困惑?

java - 如何在 Spring 中抽象出 java.time.Clock 用于测试目的

java - 从 2 个列表中过滤并使用 java8 获取匹配的记录

java - 如何从 java 8 中的 js 函数获取数组输出?

java - 将 lambda 作为方法参数传递并排序映射