Joda-Time为Java提供了JDK以外的优质日期和时间开发库。

- 在Java8之前的标准日期和时间类是匮乏的。为了正面处理这个问题,Joda-Time成为了事实上标准的Java日期和时间库。
- 从Java8开始,用户被要求迁移到java.time。
- Joda-Time设计了多个日历系统,并且提供了简单的API,默认是日历是被很多其他的标准使用ISO8601标准。
- Joda-Time支持的类包括时区、持续时间、格式化与转换。
关键特性
- LocalDate:只包含日期
- LocalTime:只包含时间
- Instant:时间轴上的时间点
- DateTime:时区中完整的日期和时间
- DateTimeZone:更好的时区
- Duration和Period:持续时间
- Interval:两个时间点之间的时间
- 全面并且灵活的时间格式化与转换
为什么使用Joda-Time
- 使用方便:Calendar访问”正常的”日期困难,并且缺乏简单的方法,Joda-Time拥有简单的字段访问,比如获得年的
getYear()和获得星期中的天getDayOfWeek()。 - 易于扩展:JDK支持通过使用子类实现多个日历系统,但是这是非常笨重的,并且在实现中很难写出另一个日历系统。Joda-Time支持基于
Chronology类实现多个可插拔的日历系统。 - 功能全面:Joda-Time提供了所有的日期和时间计算的必需功能,它提供了即装即用的特性,比如古怪的日期格式化——这个JDK难以复制的功能。
- 最新的时区计算:时区的实现基于公共时区信息数据库,每年更新数次。新版本的Joda-Time包括了这个数据库的所有更改,应尽早进行必要的更新,手动更新区域数据很容易。
- 日历支持:提供了8种日历系统。
- 互通性:内部使用毫秒进行表示,这与JDK或者其他公共的时间表示相一致。
- 性能良好:支持针对所访问的域进行最小的计算。
- 良好的测试覆盖率:有全方位的测试人员保证库的质量。
- 具有完整文档:有一个完整的用户指南,该指南提供了一个概述,涵盖常见的使用场景。 javadoc的非常详细,涵盖API的其余部分。
- 发展:自2002年以来积极发展,是一个成熟的可靠的代码库,一些相关的项目目前也是可用的。
- 开源:遵循Apache 2.0开源协议发布。
发行版
2.9.1是目前最新的发行版,2.x版本是目前最稳定的版本。
Joda-Time 需要Java5或更高版本。
Maven中使用
joda-time joda-time 2.9.1 |