猿问

我应该使用Java日期和时间类,还是应该使用Joda Time这样的第三方库?

我正在创建一个基于Web的系统,该系统将在世界各地的国家中使用。日期和时间是一种必须存储的数据。


与第3方库(如Joda time)相比,使用Java日期和时间类的优缺点是什么?我猜这些第三方库的存在是有充分理由的,但是我自己从未真正比较过它们。


倚天杖
浏览 523回答 3
3回答

catspeake

现在已经发布了Java 8,如果可以使用它,请这样做!java.time在我看来,它甚至比Joda Time还干净。但是,如果您在Java-8之前仍受困,请继续阅读...Max询问了使用Joda的利弊...优点:效果很好。我强烈怀疑Joda中的错误比标准Java库少得多。由于设计的原因,Java库中的某些错误确实很难修复(如果不是不可能的话)。它旨在鼓励您以正确的方式考虑日期/时间的处理-将“本地时间”(例如“无论我在哪里早上7点叫醒我”)的概念和时间间隔(“我叫詹姆斯”太平洋标准时间下午3点;可能不是他现在所在的下午3点,但这是同一时刻”)我相信这样可以更轻松地更新时区数据库,因为时区数据库的更改确实相对频繁它具有良好的不变性的故事,这让生活很多容易IME。从不变性出发,所有格式器都是线程安全的,这非常好,因为您几乎总是想在应用程序中重用单个格式器您将抢先学习java.timeJava 8,因为它们至少有些相似缺点:这是另一个需要学习的API(尽管文档相当不错)这是另一个可以构建和部署的库当您使用Java 8时,仍然需要进行一些工作以迁移您的技能我过去一直未能DateTimeZoneBuilder有效使用它。但是,这是一个非常罕见的用例。为了回应oxbow_lakes有效构建自己的小型API的想法,以下是我对为什么这是一个坏主意的看法:是工作。为什么已经为您完成工作?与自己的API相比,团队的新手更可能熟悉Joda除了最简单的用途以外,您可能还会犯错……即使您最初认为只需要简单的功能,这些习惯也会变得越来越复杂,一次变得一点点。日期和时间操作很难正确执行。此外,内置Java API很难正确使用 -只需查看日历API的日期/时间算术如何工作的规则即可。在这些之上构建任何东西都是一个坏主意,而不是使用设计良好的库作为开始。
随时随地看视频慕课网APP

相关分类

Java
我要回答