Java 1.8 LocalDate 日期

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

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

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/

截止目前, 星球 内专栏累计输出 66w+ 字,讲解图 2896+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2300+ 小伙伴加入学习 ,欢迎点击围观

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,并在你的代码中找到它的应用场景。