JODA- Time

javaobject oriented programmingprogramming更新于 2024/11/8 12:28:17

JODA- Time 是由 joda.org 开发的 API,它提供了比 java.util 包中的类(如日历、公历、日期等)更好的类和更有效的方法来处理日期和时间。它包含在 Java 8.0 中的 java.time 包中。

要包含,我们需要导入以下内容 -

import java.time.*;

JODA-Time 的基本功能

下面提到了 JODA-Time 的一些功能 −

  • 使用简单的字段访问器,例如 getYear()、getDayofWeek() 和 getDayofYear()

  • 它支持七种不同的日历系统,包括儒略历、伊斯兰历、公历、科普特历、埃塞俄比亚历、佛教历和公历-儒略历。

  • 提供了开发我们自己的日历的选项

  • 它提供了多种计算时间和日期的方法

  • 使用数据库中的时区。该数据库在一年内被个人更新多次。

  • 其方法的执行速度比以前的 Java 7.0 方法更快

  • 提供卓越的性能

  • 其对象无法更改

  • 线程安全

java.time 包中的重要类

DateTime

语法

DateTime dt= new DateTime();

说明

创建一个 datetime 对象,表示由系统时钟确定的当前日期和时间(以毫秒为单位)。它是使用默认时区的 ISO 日历开发的。 JDK 日历的不可变替代品

LocalDate

语法

LocalDate today = LocalDate.now()
//使用 now 方法将系统日期提供给 LocalDate 对象。

System.out.println(today)
// 2018-08-03
int d = today.getDayOfMonth();
// 03

说明

此类以年-月-日的形式表示日期,可用于表示没有时间和时区的日期。

LocalTime

语法

// 获取当前日期和时间
LocalDateTime dt = LocalTime.now();
System.out.println("%s", dt);

解释

它处理日期和时间而不考虑时区。

设置环境

  • 在 eclipse 中,创建您的 Java 项目

  • 单击此处获取最新的 JodaTime.tar.gz 文件的内容。

  • 在 eclipse 的包资源管理器中找到您的项目,右键单击它,然后选择调用项目。文件夹>新建>库

  • 应将 Joda-time-2.1.jar 复制或拖到新建立的 libs 文件夹中

  • 再次在包资源管理器中,右键单击您的项目,然后选择属性> java build path>libraries>add jars>joda-time-2.1.jar

  • 现在你可以用这个代码测试一下 − -

DateTime test = new DateTime();

基本示例

// Java 程序用于说明
// 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());

      // 获取当前日期和时间
      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 time 使用不可变类来处理日期和时间。日期类不代表实际日期。而是以毫秒精度指定时间瞬间。 Joda time 提供了一个简洁流畅的 API 来处理日期和时间。

结论

Joda time 是广泛使用的日期和时间处理库。在 Java 8 发布之前,它的目的是提供一个直观的 API 来处理日期和时间,并解决 Java 日期/时间 API 中存在的时间设计问题。它需要安装 Joda.org 的软件包和更新。它有很多优点。它支持多种不同类型的日历,如儒略历、伊斯兰历、公历、科普特历、埃塞俄比亚历、佛教历和公历-儒略历。它有许多基本功能,可帮助开发人员在其应用程序中使用它。


相关文章


有用资源