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 的包和更新。它有很多优点。它支持许多不同类型的日历,例如儒略历、伊斯兰历、格里高利历、科普特历、埃塞俄比亚历、佛教历和格里高利-儒略历。它有许多基本特性,可以帮助开发人员在他们的应用程序中使用它。

更新于:2023年8月1日

浏览量 184 次

启动你的职业生涯

通过完成课程获得认证

开始学习
广告