java.util.Date 和 Joda Time API 之间的差异

2022-09-03 18:02:39

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

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

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


答案 1

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

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

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

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

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

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

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

更新(从注释中复制):

Java 8现在已经问世,它有一个新的日期和时间API,类似于Joda Time(参见java.time包)。如果您使用的是Java 8,那么请使用新的日期和时间API。


答案 2