JODA- Time

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进行更新。它有许多优点。它支持许多不同类型的日历,如儒略历、伊斯兰历、公历、科普特历、埃塞俄比亚历、佛教历和公历-儒略历。它具有许多基本功能,帮助开发人员在其应用程序中使用它。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程