Java 1.8 LocalDate 日期

更新时间 2023-07-26 08:28:59

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 1v1 提问 / 学习打卡 / 每月赠书活动

目前, 星球 内第2个项目《仿小红书(微服务架构)》正在更新中。第1个项目:全栈前后端分离博客项目2期已经完结,演示地址:http://116.62.199.48/。采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 288 小节,累计 45w+ 字,讲解图:2012 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 1600+ 小伙伴加入,欢迎点击围观

1. 什么是 LocalDate?

LocalDate 是 Java 8 中用于处理日期的不可变类,它只包含日期部分(年、月、日),没有时间和时区

2. 创建 LocalDate

创建 LocalDate 实例的最直接方式是使用它的静态工厂方法,比如 LocalDate.now():

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        // 获取当前日期
        LocalDate today = LocalDate.now();
        System.out.println(today);
    }
}

我们还可以使用 of() 方法来创建一个具体的日期:

LocalDate specificDate = LocalDate.of(2023, 7, 25);
System.out.println(specificDate);

上面的代码创建了一个表示 2023 年 7 月 25 日的 LocalDate。

3. 获取日期信息

LocalDate 提供了一些方法来获取日期的信息,例如获取年份、月份和日:

LocalDate today = LocalDate.now();

int year = today.getYear();
int month = today.getMonthValue();
int day = today.getDayOfMonth();

System.out.println(year);
System.out.println(month);
System.out.println(day);

4. 修改日期

LocalDate 是不可变的,这意味着所有的修改操作都会返回一个新的 LocalDate 实例。例如,我们可以使用 plusDays()plusWeeks()plusMonths()plusYears() 方法来增加日期:

LocalDate today = LocalDate.now();

LocalDate future = today.plusDays(1).plusWeeks(1).plusMonths(1).plusYears(1);

System.out.println(future);

我们也可以使用 minusDays()minusWeeks()minusMonths()minusYears() 方法来减少日期。

5. 比较日期

我们可以使用 isBefore()isAfter() 方法来比较两个 LocalDate:

LocalDate date1 = LocalDate.of(2023, 7, 25);
LocalDate date2 = LocalDate.of(2023, 8, 25);

System.out.println(date1.isBefore(date2));  // true
System.out.println(date1.isAfter(date2));   // false

6. 总结

Java 8 的 LocalDate 类为我们提供了一个简洁、强大的工具来处理日期。通过使用 LocalDate,我们可以更轻松地创建、修改和比较日期。希望这个教程可以帮助你理解 LocalDate,并在你的代码中找到它的应用场景。