JODA-时间
Joda-Time 是一个由joda.org创建的 API,它提供了更好的类和有效的方法来处理日期和时间,而不是Java.util 包中的类,如 Calendar、Gregorian Calendar、Date 等。这个 API 包含在Java 8.0 中Java.time 包。
要包括我们需要导入以下内容:
import java.time.*;
JODA-TIME的基本特点
- 它使用简单的字段访问器,如getYear()、getDayOfWeek()、getDayofYear()。
- 它支持 7 种日历系统,如佛教、科普特、埃塞俄比亚、公历、公历儒略、伊斯兰教、儒略历。
- 有一个规定可以创建我们自己的日历系统。
- 它为日期和时间计算提供了丰富的方法集。
- 它使用时区数据库。该数据库在一年内手动更新了几次。
- 与Java 7.0 的早期方法相比,它的方法执行得更快;因此,提供更好的性能
- 它的对象是不可变的。所以,它们是线程安全的
Java.time 包中的重要类。
- DateTime: JDK 日历的不可变替代品。
DateTime dt = new DateTime();
// 它创建一个 datetime 对象,表示由系统时钟确定的当前日期和时间(以毫秒为单位)。它是使用默认时区的 ISO 日历构建的。
- LocalDate :此类以年-月-日的形式表示日期,可用于表示没有时间和时区的日期。
LocalDate today = LocalDate.now() //gives System date into LocalDate object using now method. System.out.println(today) // 2018-08-03 int d = today.getDayOfMonth(); // 03
- LocalTime :此类表示没有时区的一天中的时间。
LocalTime time = LocalTime.now(); //gives System time into localTime object System.out.println(time); // 10:19:58
- LocalDateTime :此类处理日期和时间而不考虑时区。
// get current date and time LocalDateTime dt = LocalTime.now(); System.out.println("%s", dt);
设置环境
- 在eclipse中创建你的Java项目。
- 下载最新的 JodaTime .tar.gz 文件单击此处,并提取其内容。
- 在 Eclipse 中,在包资源管理器中查找您的项目并右键单击它,然后将其命名为 New -> Folder -> libs
- 将 joda-time-2.1.jar 复制/拖动到新创建的 libs 文件夹中。
- 再次右键单击您的项目(在包资源管理器中)然后属性 -> Java构建路径 -> 库 -> 添加罐子 -> joda-time-2.1.jar
- 现在您可以使用以下代码进行测试:
DateTime test = new DateTime();
基本示例
// Java program to illustrate // functions of JODA time import org.joda.time.DateTime; import org.joda.time.LocalDateTime; public class JodaTime { public static void main(String[] args) { DateTime now = new DateTime(); System.out.println("Current Day: " + now.dayOfWeek().getAsText()); System.out.println("Current Month: " + now.monthOfYear().getAsText()); System.out.println("Current Year: " + now.year().getAsText()); System.out.println("Current Year is Leap Year: " + now.year().isLeap()); // get current date and time LocalDateTime dt = LocalDateTime.now(); System.out.println(dt); } }
输出
Current Day: Monday Current Month: August Current Year: 2018 Current Year is Leap Year: false 2018-08-06T13:12:16.672
好处:
- 跨多个Java平台的类似用法。
- 支持其他日历,例如佛教和埃塞俄比亚日历。
- 自我报告更好的表现。
- 易于互操作性:该库在内部使用与 JDK 相同且类似于其他常见时间表示的毫秒瞬间。这使得互操作性变得容易,并且 Joda-Time 具有开箱即用的 JDK 互操作性。
缺点:
- 需要安装包,可能需要来自 Joda.org 的更新。
参考
包 org.joda.time 的层次结构
http://www.joda.org/joda-time/
http://www.joda.org/joda-time/quickstart.html