JODA- Time
JODA- Time是由joda.org开发的API,提供了比Java.util包中的类(如日历、公历、日期等)更好的类和更有效的处理日期和时间的方法。它已经包含在Java 8.0中,使用了java.time包。
要包含JODA-Time,我们需要导入以下内容:
import java.time.*;
JODA-Time的基本特性
以下是JODA-Time的一些特性:
- 使用简单的字段访问器,例如getYear(),getDayOfWeek()和getDayOfYear()
-
支持七种不同的日历系统,包括儒略历、伊斯兰历、公历、科普特历、埃塞俄比亚历、佛教历和公历-儒略历
-
提供自行开发自己的日历的选项
-
提供广泛的计算时间和日期的方法
-
使用来自数据库的时区。该数据库每年都有多次更新
-
其方法比Java 7.0之前的方法执行速度更快
-
提供卓越的性能
-
其对象不可更改
-
线程安全
java.time包中的重要类
DateTime
语法
DateTime dt= new DateTime();
解释
创建一个表示系统时钟确定的当前日期和时间的毫秒数的DateTime对象。它使用默认时区中的ISO日历进行开发。 Immutable替换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
解释
这个类表示年-月-日形式的日期,适用于表示没有时间和时区的日期。
本地时间
语法
// 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构建路径>库>添加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-Time
在Java 8之前,日期/时间API存在多个设计问题。其中的问题之一是日期和SimpleDateFormatter类不是线程安全的。
为了解决这个问题,Joda时间使用不可变类来处理日期和时间。日期类不表示实际日期,而是指定了精确到毫秒的时间点。Joda时间提供了一个简洁而流畅的API来处理日期和时间。
结论
Joda时间是广泛使用的日期和时间处理库。在Java 8发布之前,它的目的是为处理日期和时间提供直观的API,并解决Java日期/时间API中存在的时间设计问题。它需要安装包和从joda.org进行更新。它有许多优点。它支持许多不同类型的日历,如儒略历、伊斯兰历、公历、科普特历、埃塞俄比亚历、佛教历和公历-儒略历。它具有许多基本功能,帮助开发人员在其应用程序中使用它。