Java 8 日期时间 API(DateTime API):更简洁、更强大

本贴最后更新于 499 天前,其中的信息可能已经天翻地覆

引言

在 Java 8 中,引入了新的日期/时间 API(Date/Time API),以解决旧的 java.util.Date 和 java.util.Calendar 类的问题。新的日期/时间 API 提供了更简洁、更强大的方式来处理日期、时间和时间间隔。本教程将介绍 Java 8 日期/时间 API 的基本概念、用法以及在实际开发中的应用。

1. LocalDate 和 LocalTime

LocalDate 表示一个不可变的日期对象,它只包含年、月、日信息。LocalTime 表示一个不可变的时间对象,它只包含小时、分钟、秒和纳秒信息。

下面是一个使用 LocalDate 和 LocalTime 的示例:

import java.time.LocalDate;
import java.time.LocalTime;

public class Main {
    public static void main(String[] args) {
        LocalDate currentDate = LocalDate.now();
        System.out.println("Current Date: " + currentDate);

        LocalTime currentTime = LocalTime.now();
        System.out.println("Current Time: " + currentTime);
    }
}

在上面的代码中,我们使用 LocalDate.now()获取当前日期,使用 LocalTime.now()获取当前时间,并将它们打印出来。

2. LocalDateTime

LocalDateTime 表示一个不可变的日期时间对象,它包含了日期和时间信息。可以通过 LocalDate 和 LocalTime 的组合来创建 LocalDateTime 对象。

下面是一个使用 LocalDateTime 的示例:

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2023, 7, 1);
        LocalTime time = LocalTime.of(12, 30);
        LocalDateTime dateTime = LocalDateTime.of(date, time);

        System.out.println("Date and Time: " + dateTime);
    }
}

在上面的代码中,我们使用 LocalDate.of()创建指定日期,使用 LocalTime.of()创建指定时间,然后通过 LocalDateTime.of()将它们组合成一个 LocalDateTime 对象,并将其打印出来。

3. 格式化和解析

Java 8 日期/时间 API 提供了格式化和解析日期/时间的功能。可以使用 DateTimeFormatter 类来定义自定义的日期/时间格式。

下面是一个日期格式化和解析的示例:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        String formattedDate = date.format(formatter);
        System.out.println("Formatted Date: " + formattedDate);

        LocalDate parsedDate = LocalDate.parse(formattedDate, formatter);
        System.out.println("Parsed Date: " + parsedDate);
    }
}

在上面的代码中,我们使用 LocalDate.now()获取当前日期。然后,使用 DateTimeFormatter.ofPattern()定义日期格式,将日期格式化为字符串,并将其打印出来。接下来,使用 LocalDate.parse()将字符串解析为 LocalDate 对象,并将其打印出来。

4. 时间间隔和日期计算

Java 8 日期/时间 API 还提供了处理时间间隔和日期计算的功能。可以使用 Duration 类来表示时间间隔,使用 Period 类来表示日期间隔。

下面是一个时间间隔和日期计算的示例:

import java.time.Duration;
import java.time.LocalDate;
import java.time.Period;

public class Main {
    public static void main(String[] args) {
        LocalDate startDate = LocalDate.of(2023, 7, 1);
        LocalDate endDate = LocalDate.of(2023, 7, 10);

        Duration duration = Duration.between(startDate.atStartOfDay(), endDate.atStartOfDay());
        System.out.println("Duration: " + duration.toDays() + " days");

        Period period = Period.between(startDate, endDate);
        System.out.println("Period: " + period.getDays() + " days");
    }
}

在上面的代码中,我们使用 LocalDate.of()创建起始日期和结束日期。然后,使用 Duration.between()计算时间间隔,并使用 Period.between()计算日期间隔。最后,将时间间隔和日期间隔打印出来。

结论

Java 8 日期/时间 API 为处理日期、时间和时间间隔提供了更简洁、更强大的方式。本教程介绍了 LocalDate、LocalTime 和 LocalDateTime 等基本类,以及格式化、解析、时间间隔和日期计算的功能。

希望本教程能够帮助你理解和应用 Java 8 日期/时间 API。祝你在处理日期和时间方面取得成功!

注意:本文中的示例代码基于 Java 8 版本。

注意:文章如果有错误的地方,烦请各位大佬在评论区指正,或联系作者进行修改,万分感谢!!!

作者:永夜 Evernight

个人博客:luomuren.top

公众号:扫码_搜索联合传播样式-标准色版

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...