14

可能重复:
我应该使用 Java 日期和时间类还是使用像 Joda Time 这样的 3rd 方库?

关于何时值得使用 Joda Time 而不是基本的 java.util.Date 类,我可以使用一些指导。有什么好处?Joda Time 是否允许您执行 Date 类无法执行的任何操作,或者使用它更容易还是什么?

此外,我还看到关于 Joda Time 是否是标准 API 的一部分的相互矛盾的信息。是标准的还是不标准的?

4

1 回答 1

31

Java 的标准日期和时间类(主要是java.util.Datejava.util.Calendar)功能有限,并且存在许多设计问题。许多构造函数和方法java.util.Date被弃用的事实就是一个迹象。

Joda Time 的 API 比 Java 标准库中的 API 要好得多。有带或不带时区的时间戳类,只保存日期(年,月,日)或只保存一天中的时间的类,周期,持续时间和间隔的类,它支持 ISO 8601 格式(这是标准XML 文档中的格式)等等。

我会在任何项目中使用 Joda Time 作为我的标准日期和时间库 - 真的没有理由使用java.util.Datejava.util.Calendar.

请注意,在 Java 的未来版本中,很可能会包含一个新的日期和时间 API,它看起来很像 Joda Time 中当前可用的 API;参见项目 ThreeTen

另请参阅为什么选择 Joda Time?在 Joda Time 项目的主页上。

此外,我还看到关于 Joda Time 是否是标准 API 的一部分的相互矛盾的信息。是标准的还是不标准的?

不,它不是标准 API的一部分。

更新(从评论中复制):

Java 8 现已推出,它有一个新的日期和时间 API,类似于 Joda Time(请参阅包 java.time)。如果您使用的是 Java 8,请使用新的日期和时间 API。

于 2012-08-20T08:01:30.403 回答