JODA 时间
JODA 时间是由 joda.org 开发的 API,它提供比 java.util 包中的 Calendar、Gregorian Calendar、Date 等类更好的类和更有效的方法来处理日期和时间。它包含在 Java 8.0 中,名为 java.time 包。
要包含它,我们需要导入以下内容:
import java.time.*;
JODA 时间的基本特性
下面提到 JODA 时间的一些特性:
使用简单的字段访问器,例如 getYear()、getDayofWeek() 和 getDayofYear()
它支持七个不同的日历系统,包括儒略历、伊斯兰历、格里高利历、科普特历、埃塞俄比亚历、佛教历和格里高利-儒略历。
提供开发我们自己的日历的选项
它提供了广泛的方法来计算时间和日期
时间区域来自数据库。这个数据库每年都会被手动更新很多次。
它的方法执行速度比之前的 Java 7.0 方法更快
提供卓越的性能
它的对象不可变
线程安全
java.time 包中的重要类
DateTime
语法
DateTime dt= new DateTime();
解释
创建一个 DateTime 对象,表示由系统时钟确定的当前日期和时间(以毫秒为单位)。它使用默认时区中的 ISO 日历开发。JDK Calendar 的不可变替代品。
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
语法
// get current date and time LocalDateTime dt = LocalTime.now(); System.out.println("%s", dt);
解释
它处理日期和时间,而不考虑时区。
设置环境
在 Eclipse 中,创建您的 Java 项目
点击此处获取最新的 JodaTime.tar.gz 文件,然后解压其内容。
在 Eclipse 的包资源管理器中找到您的项目,右键单击它,然后选择新建项目文件夹>新建>Libs
Joda-time-2.1.jar 应该被复制或拖放到新建立的 libs 文件夹中
再次在包资源管理器中,右键单击您的项目,然后选择属性> Java Build Path>库>添加 JAR>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: April Current Year: 2023 Current Year is Leap Year: false 2023-04-06T13:12:16.672
优点
Joda 时间有很多优点,其中一些如下:
在多个平台上以类似的方式使用 Java
支持更多日历,包括埃塞俄比亚历和佛教历
性能提升
简单的互操作性——在内部,该库使用毫秒瞬间,这是 JDK 和其他广泛使用的表示方法所使用的相同时间单位。因此,互操作性很简单,Joda-Time 具有内置的 JDK 兼容性。
缺点
需要安装包
需要从 Joda.org 更新
为什么要使用 JODA 时间?
在 Java 8 之前,日期/时间 API 存在多个设计问题。问题之一是 Date 和 SimpleDateFormatter 类不是线程安全的。
为了解决这个问题,Joda 时间使用不可变类来处理日期和时间。Date 类并不表示实际的日期。相反,它指定了一个具有毫秒精度的瞬间时间。Joda 时间提供了一个简洁流畅的 API 来处理日期和时间。
结论
Joda 时间是一个广泛使用的日期和时间处理库。在 Java 8 发布之前,其目的是提供一个直观的 API 来处理日期和时间,并解决 Java 日期/时间 API 中存在的时间设计问题。它需要安装 Joda.org 的包和更新。它有很多优点。它支持许多不同类型的日历,例如儒略历、伊斯兰历、格里高利历、科普特历、埃塞俄比亚历、佛教历和格里高利-儒略历。它有许多基本特性,可以帮助开发人员在他们的应用程序中使用它。