Joda LocalDate和java.util的日期有什么区别?

时间:2012-07-18 18:13:56

标签: java jodatime

我只是想知道Joda的LocalDate类和java.util的Date类之间有什么区别。另外,使用一个优于另一个有什么优势吗?

2 个答案:

答案 0 :(得分:8)

我认为Joda Time Website很好地解释了这一切。

Joda-Time已经创建,可以从根本上改变Java中的日期和时间处理。 JDK类日期和日历设计非常糟糕,有很多错误 并且有奇怪的表现效果。 以下是开发和使用Joda-Time的一些原因:

  • 易于使用。 由于缺乏简单的方法,日历使得访问“正常”日期变得困难。 Joda-Time有简单的现场访问器,如 getYear()或getDayOfWeek()。
  • 易于扩展。 JDK通过Calendar的子类支持多个日历系统。 这很笨重,实际上编写另一个日历系统非常困难。 Joda-Time通过基于的可插拔系统支持多个日历系统 年表课。
  • 综合功能集。 该库旨在提供日期时间所需的所有功能 计算。它已经提供了开箱即用的功能,例如支持oddball 日期格式,很难用JDK复制。
  • 最新的时区计算。 时区实施基于 公共tz数据库,这是 每年更新几次。新的Joda-Time版本包含所有更改 对这个数据库做了。如果需要更改, 手动更新区域数据非常简单。
  • 日历支持。 该库目前提供8个日历系统。将来会添加更多内容。
  • 易于互操作性。 该库内部使用的毫秒瞬间与JDK相似 到其他常见的时间表示。这使得互操作性变得容易,Joda-Time也来了 具有开箱即用的JDK互操作性。
  • 更好的表现特征。 日历具有奇怪的性能特征,因为它会在意外时刻重新计算字段。 Joda-Time仅对正在访问的字段进行最小化计算。
  • 良好的测试覆盖率。 Joda-Time拥有一套全面的开发人员测试,可以保证图书馆的质量。
  • 完整文档。 有一个完整的用户指南,提供概述和封面 常见的使用场景。 javadoc 非常详细,涵盖了API的其余部分。
  • 成熟的。 图书馆自2002年以来一直在积极发展。 虽然它随着新功能的增加而不断改进 错误修复,它是一个成熟和可靠的代码库。 现在有许多相关项目可供使用。
  • 开源。 Joda-Time根据业务友好的Apache License Version 2.0获得许可。

答案 1 :(得分:0)

帮助我决定使用JodaTime的具体事项之一是日期验证。使用标准java.util.Date非常困难。

DateTime expireDate = new DateTime( year, month, 1, 0, 0 );

if ( expireDate.isBeforeNow() ) {
    // Expired handling here
}