3 回答
TA贡献1111条经验 获得超0个赞
现在已经发布了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的日期/时间算术如何工作的规则即可。在这些之上构建任何东西都是一个坏主意,而不是使用设计良好的库作为开始。
添加回答
举报