Java 1.8 LocalDateTime 日期时间
一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动
目前,正在
星球
内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.2 + Vite 4
,手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 144 小节,累计 22w+ 字,讲解图:923 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 440+ 小伙伴加入,欢迎点击围观
。
1. LocalDateTime 是什么?
LocalDateTime
是 Java 8 中一个不可变的日期-时间对象,它表示了日期(年、月、日)和时间(小时、分钟、秒),但不包含时区。
2. 创建 LocalDateTime 对象
使用 LocalDateTime
的静态方法 now()
,你可以得到表示当前日期和时间的 LocalDateTime
对象:
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
// 获取当前的日期和时间
LocalDateTime now = LocalDateTime.now();
// 打印出当前的日期和时间
System.out.println(now);
}
}
也可以使用 of()
方法创建具有特定日期和时间的 LocalDateTime
对象:
// 创建一个代表 2023 年 7 月 25 日,时间为 14 点 30 分的 LocalDateTime 对象
LocalDateTime dateTime = LocalDateTime.of(2023, 7, 25, 14, 30);
System.out.println(dateTime);
3. 获取日期和时间的信息
你可以通过调用 LocalDateTime
对象的方法获取日期和时间的各个部分,例如:
LocalDateTime now = LocalDateTime.now();
// 获取年份
int year = now.getYear();
// 获取月份
int month = now.getMonthValue();
// 获取日期
int day = now.getDayOfMonth();
// 获取小时
int hour = now.getHour();
// 获取分钟
int minute = now.getMinute();
// 获取秒
int second = now.getSecond();
// 打印结果
System.out.println(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
4. 修改日期和时间
由于 LocalDateTime
是不可变的,所有修改日期和时间的操作都会返回一个新的 LocalDateTime
对象。例如,你可以使用各种 plus
和 minus
方法来添加或减少日期和时间的各个部分:
LocalDateTime now = LocalDateTime.now();
// 增加一天
LocalDateTime tomorrow = now.plusDays(1);
// 减少一个小时
LocalDateTime anHourAgo = now.minusHours(1);
System.out.println(tomorrow);
System.out.println(anHourAgo);
5. 比较日期和时间
可以使用 isBefore()
和 isAfter()
方法比较两个 LocalDateTime
对象:
LocalDateTime dateTime1 = LocalDateTime.of(2023, 7, 25, 12, 30);
LocalDateTime dateTime2 = LocalDateTime.of(2023, 7, 26, 12, 30);
// 检查 dateTime1 是否在 dateTime2 之前
boolean isBefore = dateTime1.isBefore(dateTime2);
System.out.println(isBefore); // 输出:true
// 检查 dateTime1 是否在 dateTime2 之后
boolean isAfter = dateTime1.isAfter(dateTime2);
System.out.println(isAfter); // 输出:false
6. 总结
Java 8 的 LocalDateTime 类为处理日期和时间提供了强大且灵活的工具。通过使用 LocalDateTime,我们可以更轻松地创建、修改、比较日期和时间,希望这个教程能帮你在代码中找到它的应用场景。