使用Joda-Time有什么缺点吗?

2022-08-31 16:54:39

我想说服架构经理将Joda-Time罐子包含在我们的产品中。

您知道使用它有什么缺点吗?

我认为Joda-Time需要不断更新,因为它包含的文件。这是一个缺点。也许我错了。

您能就这个问题提供一些澄清吗?


答案 1

我对Joda Time有几乎完全积极的经历。我的一个问题是在尝试构建自己的时区时(出于合法原因,我向你保证:)我得到了一些非常奇怪的例外,文档对于那个特定的用例来说不是很好。

但是,在大多数情况下,使用起来很愉快 - 不可变性使代码更容易推理,格式化程序的线程安全性非常有用。

是的,有一些文件可以保持最新 - 但至少您可以使它们保持最新状态。这并不是说它们包含Java内置的东西是不必要的,只是使用Java的机制,你无法在没有重大黑客攻击的情况下保持时区等信息的最新状态!

基本上,使用Joda Time的+1。Java日期/时间API是Java平台IMO中最糟糕的部分之一。


答案 2

在我看来,Joda-Time中最重要的缺点是关于精度的:许多数据库以微秒(甚至纳秒)的精度存储时间戳。Joda时间只有几毫秒。这对我来说是不可接受的:我使用的所有“数据模型”类都需要反映数据库中数据的全部精度。库对我的数据的近似或截断只是不切实际。

以下是选择毫秒精度背后的原因,取自JSR 310邮件列表:

“Joda-Time选择使用毫秒,因为它使转换为日期和日历变得更加容易。- S·科尔伯恩

对谁来说更容易?图书馆的作者,人们会认为...在我看来,当几乎所有数据库都将时间存储到微秒/纳秒精度时,设计决策不正确。对数据库值的无视令人担忧。


推荐